Compare commits

...

624 Commits

Author SHA1 Message Date
hakril 8d517f29cf Merge pull request #62 from hakril/1.0.1
Version  1.0.1
2024-11-05 09:59:51 +01:00
hakril 2ff11e7e5f Candidate for 1.0.1 2024-11-05 09:34:04 +01:00
hakril e0852a2866 Merge pull request #61 from hakril/comupdate
Add multiple ctypes defintions
2024-11-04 17:03:23 +01:00
hakril 68a37443fd Update some access-right names 2024-11-04 16:00:30 +01:00
hakril 72962be653 Improve RPCClient 2024-10-28 13:52:00 +01:00
hakril b25fc491df More tests fixup 2024-10-24 18:34:00 +02:00
hakril 3de820046d Fix or improv test resilience 2024-10-24 17:32:20 +02:00
hakril 92863f7944 improve test_pe_parse.py resiliance to system32 pe format change 2024-10-24 17:13:28 +02:00
hakril db14bc0294 Small COM fix/improvements 2024-10-23 10:10:40 +02:00
hakril 979f7ec77a Small fix in simple_x86 2024-10-23 09:56:06 +02:00
hakril 91c468eba0 Update generated_def and winproxy 2024-10-23 09:55:39 +02:00
hakril 0cd51a088e Big ctypes_generation update + add lot of structures/interfaces 2024-10-23 09:53:59 +02:00
hakril 13d0b6b3b7 Merge pull request #58 from hakril/improv_simple_assembly
Improve handling of some instructions in simple x86/x64
2024-06-27 15:14:20 +02:00
hakril cbadada375 Testing stuff for new CI config 2024-06-27 14:57:56 +02:00
hakril f90991022a Update CI with publish-unit-test-result-action/windows@v2 2024-06-27 14:46:59 +02:00
hakril cbf456ac4f Adding some generated_def related to Section & NtReadFile/NtWriteFile 2024-06-27 14:34:33 +02:00
hakril 53554f45ab Improve handling of Jmp/Call/Push/Pop 2024-06-27 14:22:40 +02:00
hakril 006dce7054 Add tests for non-handled instruction format in simple x86/x64 2024-06-27 14:03:39 +02:00
hakril 7475c8893e Merge pull request #57 from hakril/uprade_version
Uprade version to 1.0.0
2024-06-14 17:26:05 +02:00
hakril ddb22444d2 Update version number to 1.0.0 + update documentation 2024-06-14 17:13:16 +02:00
hakril 1ab7d3cad6 improve documentation of generated code 2024-06-14 17:10:46 +02:00
hakril 50b0493364 Upgrade sphinx conf + update some doc 2024-06-14 16:19:44 +02:00
hakril e3fd66b3d6 ctypes generation detect duplicate def in source file + fix duplicates 2024-06-14 14:24:19 +02:00
hakril 703c7f2ec2 Fix windows.native_exec.cpuid for py3 2024-06-14 14:22:21 +02:00
hakril b8dd03a1ef Fix symbol example in readme.md 2024-06-11 10:08:05 +02:00
hakril 6f00e753dd Fix readme 2024-06-10 22:21:40 +02:00
hakril 9c1c24bfda Update links in readme to https 2024-06-10 22:20:19 +02:00
hakril d7d936d695 Merge pull request #53 from hakril/winapi-wide
Full unicode compatibility
2024-06-10 21:50:45 +02:00
hakril 95c3f81619 update readme for official unicode + python3 full support 2024-06-10 21:27:36 +02:00
hakril 8472fd12a7 docs/generate_samples.py now use py3 2024-06-10 21:27:13 +02:00
hakril 59b3531d15 Update samples output 2024-06-10 21:26:56 +02:00
hakril bc13f7a497 Add check_encoding_config.py sample 2024-06-10 21:26:15 +02:00
hakril b1f0d74a3a Fix serviceManager handle closing + winproxy.SetThreadToken for py3 2024-06-10 21:25:08 +02:00
hakril 92742a4e97 Fix samples for python3 2024-06-10 21:24:37 +02:00
hakril 9770165487 Update readme 2024-06-10 18:18:23 +02:00
hakril bcb6327f60 Trying to fix github CI secondary rate limit errors 2024-06-10 17:44:39 +02:00
hakril 40f9420078 More tests & unicode values 2024-06-10 17:28:48 +02:00
hakril 36b4bf38fc Regen ctypes after rebase 2024-06-05 22:52:48 +02:00
hakril 8f828a6018 Remove breakpoint from test 2024-06-05 22:47:26 +02:00
hakril b003d9ee32 reintroduce system.build_number as system.versionstr 2024-06-05 22:47:26 +02:00
hakril 13dc869af6 Add unicode tests + comments 2024-06-05 22:47:26 +02:00
hakril 4b5b924224 Working on new sample for debug.symbols type exploration 2024-06-05 22:47:26 +02:00
hakril 2c518a77f9 Improve Symbol API : finish passing to unicode 2024-06-05 22:47:24 +02:00
hakril d61067fe5e Transfering base of symbol API to Wide + tests 2024-06-05 22:47:06 +02:00
hakril bb4271d97b windows.system.device_manager handle unicode + test 2024-06-05 22:46:51 +02:00
hakril d756cb1027 windows.system.etw support unicode + tests 2024-06-05 22:46:51 +02:00
hakril 5ae315b317 winutils fonction use Wide APIs 2024-06-05 22:46:51 +02:00
hakril 6f55a4736e windows.system now use W() APIs 2024-06-05 22:46:51 +02:00
hakril cab8be5311 Fix some tests 2024-06-05 22:46:51 +02:00
hakril d1e13fda8a Improve test for unicode 2024-06-05 22:46:51 +02:00
hakril 4bcec38cc1 volume.py (logicaldrives) now use W() APIs 2024-06-05 22:46:48 +02:00
hakril 3ad9bad56e Trying to improve workflow with better pytest results name 2024-06-05 22:45:46 +02:00
hakril a8414c975d Pipe API use Wide + support unicode 2024-06-05 22:45:46 +02:00
hakril 87e1c998a6 Add test on logicaldrives for py3 2024-06-05 22:45:46 +02:00
hakril 736a72255b More pycompat fixes 2024-06-05 22:45:46 +02:00
hakril 247140123c More tests fix 2024-06-05 22:45:46 +02:00
hakril 75dfe847ec More strange sys.stdout fixes for CI 2024-06-05 22:45:46 +02:00
hakril a580d825ae More unicode compat / more fix 2024-06-05 22:45:46 +02:00
hakril 1b5097050b Remove breakpoint in test_security_descriptor_from_unicode_file() 2024-06-05 22:45:46 +02:00
hakril 210bc648ec Fix error in pycompat 2024-06-05 22:45:46 +02:00
hakril 412c725fba Improve pycompat urepr_encode for non-tty stdout + fix some tests 2024-06-05 22:45:46 +02:00
hakril 6586018059 Improve pycompat when stdout is not a tty (no stdout.encoding) 2024-06-05 22:45:46 +02:00
hakril 7a7e6935d1 More encoding testing of CI 2024-06-05 22:45:46 +02:00
hakril a580153da9 More encoding tests 2024-06-05 22:45:46 +02:00
hakril 72a7f52ae2 Fix enumerate_threads_setup_owners() 2024-06-05 22:45:46 +02:00
hakril 4120c6e7e3 Fix failed merge 2024-06-05 22:45:46 +02:00
hakril ae5bf70b49 Improve ctypes generation determinism for py2 vs py3 generator 2024-06-05 22:45:33 +02:00
hakril 44ac6356e1 ctypes_generation/generate.py works on py3 + deterministic on py2 & py3 2024-06-05 22:45:16 +02:00
hakril 9ce6fcef9c Update ctypes_generation 2024-06-05 22:44:16 +02:00
hakril 0a2ed77302 Adding encoding documentation 2024-06-05 22:43:30 +02:00
hakril 33766c2ffd Working on WinAPI Wide-transition 2024-06-05 22:43:30 +02:00
hakril 5217506705 Change system.build_numer to actuel int NtBuildNumber + added system.kuser_shared_data 2024-06-05 22:43:30 +02:00
hakril 99fbec8ec4 Passed services API to Wide functions 2024-06-05 22:43:30 +02:00
hakril e313510fe5 Fix object_manager.KernelObject.__repr__ to handle unicode name 2024-06-05 22:43:30 +02:00
hakril 9eb4405cce Passed process relation API to Wide functions 2024-06-05 22:43:30 +02:00
hakril 7883e5f189 Added pycompat urepr_unicode for unicode repr in python2 + fix / kuser_shared_data in ctypes generation 2024-06-05 22:43:29 +02:00
hakril 93540ddbe5 Merge pull request #56 from hakril/io_ctypes_generation
Added IO definitions + ability to use CTL_CODE() macro in windef
2024-06-05 21:31:36 +02:00
hakril 6bf8f77617 Added IO definitions + ability to use CTL_CODE() macro in windef 2024-06-03 18:53:16 +02:00
hakril ee409e4c72 Merge pull request #55 from hakril/volume_dospath_fix
Change LogicalDrive.path logic based on QueryDosDevice returned valudes
2024-05-30 11:56:53 +02:00
hakril f957c640c7 Change LogicalDrive.path logic based on QueryDosDevice returned valudes 2024-05-28 19:03:46 +02:00
hakril 328735bd3a Merge pull request #54 from hakril/improve_simple_x64
Implem x64 mem_access [RIP+DISP32]
2024-05-21 18:52:57 +02:00
hakril feafb52c2a Implem x64 mem_access [RIP+DISP32] + few test + fix raw instr 2024-05-21 16:05:45 +02:00
clement rouault 275d054ba7 Add ntcall.py sample 2024-05-20 11:28:34 +02:00
clement rouault 36db869572 POC code for registry->security descriptor interface 2024-05-20 11:25:56 +02:00
clement rouault 74f5d43159 Improve SafeArray obj+handling in com.py 2024-05-20 11:22:50 +02:00
clement rouault dade97ff16 Update comments/doc to event_log.py 2024-05-20 11:22:07 +02:00
clement rouault 2db6037658 Small improvement/add to WMI objects/apis 2024-05-20 11:21:47 +02:00
clement rouault b68369936a Add some attributes to bits objects 2024-05-20 11:20:34 +02:00
clement rouault 85a41fbca0 Add POC of winutils.lookup_name() 2024-05-20 11:20:14 +02:00
clement rouault dab2a57d75 Change process pop by windows.test to winver.exe 2024-05-20 11:18:43 +02:00
hakril d3d6410276 Update readme + version number (#52) 2024-05-19 19:12:12 +02:00
hakril 9a0868da15 Enable debugger testing in CI (#50)
Fix hang & improves tests related to the debugger + activate Debugger tests in CI
2024-05-18 23:40:34 +02:00
clement rouault 117ea557f7 Trying to improve stability in CI with more sleep() 2024-05-18 23:31:09 +02:00
hakril f92204a16f Change def of OBJECT_ATTRIBUTES struct to handle remotectypes (#51) 2024-05-18 23:11:35 +02:00
hakril d8b2770046 Improve test config/code for better test coverage in CI (#49)
* Improve test detection of other-bitness installation status

* Install capstone-windows in CI for better test coverage

---------

Co-authored-by: clement rouault <clement.rouault@exatrack.com>
2024-05-14 20:56:50 +02:00
hakril e3bcde7d63 Add github actions for pytest CI (#48)
Integration of github CI testing workflows for python2.7 / 3.6 & 3.11 + Fix some tests & code failing
2024-05-14 18:44:04 +02:00
clement rouault 494317ee99 Add some ctypes definition associated with file APIs 2024-05-11 22:27:18 +02:00
clement rouault 46daca9539 Merge branch 'fix_alpc_sample_py3' 2024-05-11 22:17:59 +02:00
clement rouault 82d0c5cc5c Updat eversion number + Add missing ctypes_generation environ.txt 2023-05-26 09:31:06 +02:00
clement rouault 0eb78f21bd Added Environment API to winproxy + windows.system.environ : a unicode environ even on py2 2023-05-26 09:25:19 +02:00
clement rouault 0f501ab46d Service API are now full Wide / service object now use unicode strings 2023-01-30 13:12:18 +01:00
hakril f2ac6ea455 Fix alpc sample py3 (#45)
* ReAdded AF_ flags removed by mistake from ctypes_generation

* Adapt ALPC samples to python3 (fix #44)

---------

Co-authored-by: clement rouault <clement.rouault@exatrack.com>
2023-01-30 13:03:34 +01:00
clement rouault 2828f496bd Adapt ALPC samples to python3 (fix #44) 2023-01-12 12:53:38 +01:00
clement rouault f295a081b1 ReAdded AF_ flags removed by mistake from ctypes_generation 2022-11-29 12:58:43 +01:00
clement rouault 681fba942f Added SecurityDescriptor explain for SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE 2022-11-28 17:50:51 +01:00
clement rouault f4f9798d39 Added some netapi ctypes_generation / winproxy apis 2022-11-28 17:50:17 +01:00
clement rouault 09fa7c49ec Adding windows.winproxy.RtlMoveMemory 2022-10-31 10:24:25 +01:00
clement rouault c1aad71dd3 Improved integration of ws2_32 API + add demo_ws2_32.py sample 2022-10-31 10:18:23 +01:00
clement rouault 5d9e9a240f Added base for ws2_32 winproxy (define/struct/functions) + RtlMoveMemory 2022-10-28 18:23:56 +02:00
clement rouault 267ed1e85d Add some ctypes_generation and generated def 2022-08-05 11:33:25 +02:00
clement rouault d7d2dacf33 Fixed thread.teb_base + add thread.teb_syswow_base for TEB64 of Syswow process 2022-08-05 11:30:45 +02:00
clement rouault 3d7266ad50 Added some generated def files 2022-05-27 15:35:13 +02:00
clement rouault 63dd0130f1 POC of windows.system.domain 2022-05-27 15:34:27 +02:00
clement rouault b8788058e5 Func parser try to not really on presence of WINAPI to search for io_info prefix on parameters 2022-05-09 17:41:01 +02:00
clement rouault fdef64c57f Added RegLoad/Unload to winproxy 2022-05-09 17:41:01 +02:00
clement rouault e156b05e0f Improving SecurityDescriptor API/functions 2022-05-09 17:41:01 +02:00
clement rouault a7d547f994 Improve ctypes_generation function parser for new MSDN format of [in] [out] parameters 2022-05-09 17:41:01 +02:00
clement rouault 5fa4ca6aae Fixed bug introduced in token.privileges in ad592980 + associated tests 2022-05-09 17:24:55 +02:00
hakril ad59298015 Token privilege code use W() API + use of GetNamedSecurityInfoW in security.py (fix issue #40) 2022-05-07 11:35:36 +02:00
clement rouault 59e2cefee0 Replace binary used for test as notepad.exe is now the Notepad.exe app + add check on pop_proc about result bitness 2022-04-01 14:29:05 +02:00
clement rouault d23a9813e9 Prevent Token.__repr__ to raise on access denied 2022-04-01 14:10:41 +02:00
clement rouault 447069df32 Process listing now use Wide API (process name is still temporary a ascii string with backslashreplace) 2022-02-07 17:10:54 +01:00
clement rouault 77d90bc4fd Added Process32NextW/Process32FirstW to winproxy 2022-02-07 17:09:14 +01:00
clement rouault 82e3e0f3d0 Update test_pe_parsing_dotnet_32_current_process_64() 2022-02-03 15:22:18 +01:00
clement rouault 350a11515f Added winutils datetime_from_systemtime() 2022-02-03 15:16:46 +01:00
clement rouault 61e027a678 Allow custom timeout to eventlog query 2021-12-30 13:39:38 +01:00
clement rouault f9df80ca20 Improved handling of closing python in BaseSystemHandle.__del__ 2021-11-03 09:27:13 +01:00
clement rouault df44d38356 Added multiple genereted_def + fixed winproxy CreateFileW 2021-10-19 15:42:48 +02:00
clement rouault 1ad2ecba0d Fix samples/find_value.py py3 compat 2021-09-22 14:51:50 +02:00
clement rouault c4a40626b2 Improve windows.alpc message size handling and configuration using a global 2021-09-22 14:51:30 +02:00
clement rouault fa0baf0f14 Merge branch 'master' of github.com:hakril/PythonForWindows into master 2021-09-10 13:03:00 +02:00
clement rouault 77dad71b7e Added NtTerminateProcess to winproxy 2021-09-10 13:02:44 +02:00
clement rouault 735b18b369 Added some ntdll function to winproxy 2021-09-07 18:08:59 +02:00
clement rouault a814012574 windows.native_exec.create_function can now accept ctypes calling convention as parameter 2021-09-07 18:07:02 +02:00
clement rouault c2be36757f Improve injection capacity 2021-09-07 17:56:06 +02:00
hakril 134bd844d6 Fixed issue #30 about NdrContextHandle packing in py3 2021-09-06 22:07:00 +02:00
clement rouault f45a997179 Merge branch 'master' of github.com:hakril/PythonForWindows into master 2021-08-05 11:24:36 +02:00
clement rouault 4d988d2668 Added some function/struct to ctypes generation + wininet APIproxy 2021-08-05 11:24:18 +02:00
hakril b8ceea8f22 Added simple_x[86/64] listing of instrtuction to documentation + regenerated doc 2021-08-03 22:59:04 +02:00
clement rouault af7e64638c Fixed pe_parse for non-standard SizeOfOptionalHeader + .NET PE32 mapped in 64b processes 2021-07-29 20:01:51 +02:00
clement rouault 1de666c652 Merge branch 'master' of github.com:hakril/PythonForWindows into master 2021-07-28 13:47:53 +02:00
clement rouault e7789312fd Added winproxy.GetSystemTimes & some other time functions 2021-07-28 13:47:20 +02:00
Mastho d4fd2ffdbc Fix winutils check_debug API (#25)
Now using the windows.system.registry object
2021-07-22 19:36:31 +02:00
clement rouault 8b90c96c1a utils.create_process now use CreateProcessW for simpler py3 usage + fix code in WinProcess.read_[w]string + associated tests 2021-07-13 13:22:50 +02:00
clement rouault 42fac92940 Added some setter in task-scheduled definition 2021-06-25 17:32:14 +02:00
clement rouault acb66cfa78 Improv ctypes generation determinism for 'from .{0} import *' in dependancies 2021-06-25 17:22:16 +02:00
clement rouault 522c92cb45 ctypes generation file : meta.py is now one-line per entry for better git-diff 2021-06-25 17:19:56 +02:00
clement rouault 378ed31778 Added LookupAccountName functions 2021-06-25 17:19:10 +02:00
clement rouault 5a07f6a444 Removed temp/debug ctypes structure in ctypes_generation 2021-06-23 11:51:12 +02:00
clement rouault fb9ff96a11 Fixed current_process.read_string/wstring for page end + tests 2021-06-22 19:03:35 +02:00
clement rouault 6552312275 Added a custom version of SYSTEM_PROCESS_INFORMATION 2021-06-22 19:02:45 +02:00
clement rouault 5fdcbee121 Improved determinism of ctypes generation to reduce size of diff when regenerating 2021-06-21 13:45:24 +02:00
clement rouault dfdad6edf0 Added some fields to windows.debug.symbols.SymbolType 2021-06-21 10:46:54 +02:00
clement rouault d68ff123b3 Added/Updated some _SYSTEM_INFORMATION_CLASS related enum/struct 2021-06-21 10:46:15 +02:00
clement rouault 1f70bdd49a Added some PE resource API in generated_def / winproxy 2021-06-18 17:22:38 +02:00
clement rouault 6fe784030f Added some ETW define + Trace.start() now take a mode param 2021-06-18 17:21:36 +02:00
clement rouault 408fe8aaa4 Added some crypto definitions + POC of dpapi with crypto.protect/unprotect 2021-06-15 15:38:14 +02:00
clement rouault 1d128f43ab native_function.CustomAllocator now has the ability to be closed, freeing its pages. 2021-06-15 15:35:46 +02:00
clement rouault c68dc4e29a Syswow.py 32->64 calls should now work with multi-threads 2021-06-15 15:33:28 +02:00
clement rouault cd87544fc7 Fix a concurrency error in simple_x86 2021-06-15 15:32:23 +02:00
hakril 9549942e6f Merge branch 'BrunoPujos-master' 2021-05-24 23:17:51 +02:00
hakril 4f2e43ae6b Merge branch 'master' of https://github.com/BrunoPujos/PythonForWindows into BrunoPujos-master & regenerated windows.generated_def 2021-05-24 23:16:59 +02:00
clement rouault d05c067f65 Added compress_buffer utils + custom compression type to decompress_buffer 2021-05-24 15:14:14 +02:00
clement rouault 015517cd71 Fixed tests for new import windows.pipe requirement 2021-05-24 15:13:30 +02:00
clement rouault 4e67a5ac95 Added Multiple function / define to generated def 2021-05-24 15:05:35 +02:00
BrunoPujos 5052d99199 added .py autogenerated for event and filemapping functions 2021-05-19 10:19:14 +02:00
BrunoPujos 83ca54d182 add auto-generated functions for event and file mapping; fix buf for OpenEventW which called OpenEventA 2021-05-18 17:13:02 +02:00
srounet eab219610d add Pushad/Pushfd/Pushfq mnemonics and alias to Jz (#20)
* add register mnemonics and alias to Jz

* remove push/popal use expected_result to overwrite result

* add x64 instructions

* fix an issue with pushfd popfd Instructions not matching the intel specification
2021-05-04 19:31:42 +02:00
clement rouault 83b02310e4 Added some doc in eventlog xpath usage 2021-04-28 13:54:22 +02:00
clement rouault 542eb33aa6 Fix issue #19 about x86/x64 bad Test encoding 2021-04-27 21:32:49 +02:00
clement rouault 39d683ffeb Fix & Test infinite look in regkey.values in certains conditions 2021-04-19 09:23:37 +02:00
clement rouault 3149961634 Retrieving process ppid now use limited_handle, allowed more case of sucessful retrieval 2021-03-05 16:37:48 +01:00
clement rouault 758f418965 Merge branch 'master' of https://github.com/hakril/PythonForWindows into master 2021-03-05 16:36:57 +01:00
hakril ca6ce73dcc Added poc for event explorer sample 2021-01-28 22:41:18 +01:00
clement rouault 86d02ee17d De not import windows.pipe by default anymore 2021-01-12 15:30:13 +01:00
hakril 04cbbf3888 Fixed a Evthandle leak on evtlog code 2020-09-08 13:34:20 +02:00
hakril caa8ef5f32 Added documentation about Pypi availability and installation 2020-07-23 10:19:55 +02:00
hakril 2cd9c287aa Updated setup.py with long description 2020-07-23 09:38:03 +02:00
hakril 8d33e0143f Updated online documentation for 0.6 2020-07-16 23:48:22 +02:00
hakril 7a368a1a23 Updated version to 0.6 - Py3 supported ! 2020-07-16 23:43:23 +02:00
hakril 8e257f9678 Added some code resulting from exploration in COM/remote ctypes 2020-07-16 23:37:41 +02:00
hakril 34254dfde2 Improving NDR packing for some easy to fix corner cases 2020-07-16 23:35:05 +02:00
hakril 0f49dff128 Added some docstrings 2020-07-16 23:33:27 +02:00
hakril 9bf2e61431 Improved test for NDR + added timeout for debugger test (if pytest-timeout present) 2020-07-16 23:31:35 +02:00
hakril 01a59a92c4 Updated some doc and samples 2020-07-16 23:26:59 +02:00
hakril e2ff50e6a2 Added some generated def 2020-07-16 23:24:43 +02:00
hakril 47f3e64c84 Added some required generated def 2020-06-22 14:07:51 +02:00
hakril d8ac02e6a2 Improved NDR padding capabilities for primitive types 2020-06-15 10:00:05 +02:00
hakril 0fa8026c1b Fix localdebugger (and sample) for python3 2020-06-05 17:10:45 +02:00
hakril e4c0f8645e Adapted symbol code & samples for py3 compat 2020-05-18 23:07:33 +02:00
hakril 2e48f9008a Multiple docs update some __init__.py code (windows.debug not imported by default anymore) 2020-05-18 22:58:52 +02:00
hakril aec35a46d5 Added Symbol related sample output 2020-05-18 22:49:32 +02:00
hakril e70c97cbfc Added symbol sample + SymbolDebugger 2020-05-18 22:48:12 +02:00
hakril 5b210b50cb Updated some code in object manager 2020-05-18 22:45:08 +02:00
hakril 2e7bfba3b9 Added some version related definition 2020-05-15 14:11:00 +02:00
hakril 027b7c1c64 Working on symbols documentation 2020-05-15 00:30:05 +02:00
hakril 3151155670 Added a fonction to translate comdate format to datetime + fix DisableWow64FsRedirection for 32b system 2020-05-12 23:27:50 +02:00
hakril 38aef8e497 Fix py3 compat for some remote ctypes code 2020-05-12 23:27:01 +02:00
hakril c666882105 Improved available information about scheduled task + updated documentation 2020-05-12 23:22:00 +02:00
hakril ffec0aa57e Renamed NewService class as Service + updated doc/sample for new service API 2020-05-12 00:20:16 +02:00
hakril eb131d2621 system.services now handle int/slice for getitem + update doc + add a sample 2020-05-11 23:42:51 +02:00
hakril 042e77acf1 Updated doc of event_log.py 2020-05-11 23:42:51 +02:00
hakril 654280c8a5 Adapted samples for py3 support 2020-05-11 09:00:57 +02:00
hakril 176066d917 Added option --attributes to enum_device, and updated the sample accordingly 2020-05-10 23:27:18 +02:00
hakril b59522e504 Documented most of the classes/attributes related to devices_manager.py. Updated related rst. 2020-05-10 23:27:18 +02:00
hakril 996487cc1f Added device manager documentation skeleton to docs/ as well as samples output 2020-05-10 23:27:18 +02:00
hakril 0ec8ae2fa6 Adapted device manager samples & small API improvements 2020-05-10 23:27:18 +02:00
hakril 78c205d248 Added some comment about unsure high-level API choice/possibility to discuss 2020-05-10 23:27:18 +02:00
hakril 6a7626eb2d Adapted lucasg sample to new (poc) device manager high-level API 2020-05-10 23:27:18 +02:00
hakril 1077541ec4 POC of new high-level API for device manager adapted from lucasg work 2020-05-10 23:27:18 +02:00
hakril f491c510eb Adapt lucasg winproxy code to match codebase behavvior 2020-05-10 23:27:18 +02:00
hakril 5aed4305d6 Port lucag device manager structures/function to ctypes generation 2020-05-10 23:27:18 +02:00
lucasg 97a1bb22e1 [device] Add device object associated with phy device 2020-05-10 23:27:18 +02:00
lucasg ec0e97c075 [device] Improve device's name retrieval 2020-05-10 23:27:18 +02:00
lucasg 7652f597f3 [Device] Correctly parse device's resources 2020-05-10 23:27:18 +02:00
lucasg 5aa181c4cf [Device] Implement API to retrieve resources associated with devices 2020-05-10 23:27:18 +02:00
lucasg 445c68537c [Device] Implement apis to retrieve the list of devices under each class 2020-05-10 23:27:18 +02:00
lucasg 0ee191c981 [Device] Add setupapi SetupDiClassNameFromGuid winproxy 2020-05-10 23:27:18 +02:00
lucasg e74089cda3 [Device] Add cfgmgr.CM_Enumerate_Classes winproxy 2020-05-10 23:27:18 +02:00
Reuven Peleg ef580c675f Fix port_name member in documentation
AlpcClient class have member name port_name, not portname
2020-05-08 23:39:09 +02:00
hakril 6a5364ea1e Updated docstring of RPCClient to link to AlpcClient & documented AlpcClient.port_name 2020-05-08 23:31:29 +02:00
hakril ed0099fd57 PFW symbols engine can now pull dbghelp.dll path from env var PFW_DBGHELP_PATH 2020-05-05 16:29:02 +02:00
hakril bbf031e784 Renamed definition/com/tst directory to better name: propertysystem 2020-05-04 09:52:54 +02:00
hakril 466d94c03c Fixed broken basestring for py3 compatibility (see issue #15) 2020-05-02 23:12:25 +02:00
hakril 578b4d9193 Update generated def + documentation 2020-03-29 22:14:29 +02:00
hakril 9485ceef05 Updated README with the current state of PFW for Python3 2020-03-29 21:49:22 +02:00
hakril f63f7f308a Some quick and dirty fix for debugger/breakpoint in python3 2020-03-29 21:41:48 +02:00
hakril c691d8eb84 Added EvtQuery.seek() + IsDebuggerPresent API for sample purpose 2020-03-19 10:33:12 +01:00
hakril 91e6ef824c Added EventLog.date for simplicity of use 2020-03-16 13:19:03 +01:00
hakril 54f202731d Added sample + link from debug.rst for FunctionCallBP 2020-03-11 18:06:23 +01:00
hakril fefe9f397f Added autodoc for FunctionCallBP 2020-03-11 00:03:55 +01:00
hakril 546818f91b Added a sample for windows.debug.FunctionCallBP : change_function_ret_value.py 2020-03-10 23:59:50 +01:00
hakril fb23ad2838 Fix syswow64 32<->64 for python3-23b 2020-03-10 21:03:59 +01:00
hakril 7921e74647 Fixed a GC issue with system.modules + added deprecation warning to utils.get_kernel_modules() 2020-03-10 20:50:04 +01:00
hakril 5c3b0cda88 Merge branch 'gitter-badger-gitter-badge' into dev 2020-02-16 09:53:52 +01:00
hakril 50f6b993de Adapted the gitter link + small update to the README 2020-02-16 09:52:07 +01:00
The Gitter Badger d7c150b794 Add Gitter badge 2020-02-14 10:42:30 +00:00
hakril 0cf6057b98 setup.py is py3-beta ready :) 2020-02-14 10:16:27 +01:00
hakril 02b2ba13f9 Added a poc for a WinFile object 2020-02-13 23:24:37 +01:00
hakril 92df7eaee0 New generated_def py3 ready \o/ PFW should be ready for py3 testing 2020-02-13 23:18:47 +01:00
hakril 9f69b1cefa Adapted some stuff in security.py for py3 2020-02-13 23:17:43 +01:00
hakril fe22a5ad0d Testing/Fixing some sample for py3 2020-02-13 23:16:46 +01:00
hakril 66382b89f7 Some more py3 compat fix + few feature in POC 2020-02-13 22:30:46 +01:00
hakril 4dc71b0449 Added some flags & improved explain() 2020-02-13 22:23:55 +01:00
hakril 4d3b3e18ad Lot of small py3 compat fix 2020-02-13 22:23:20 +01:00
hakril b27d161a6a Fixed ctypes_generation about some bugs on py3 2020-02-13 22:13:23 +01:00
hakril 80c6a747da Updated test for py3 2020-02-13 22:12:40 +01:00
hakril f403856e26 Debugger test pass on py3 2020-02-08 00:15:41 +01:00
hakril 6a74c83670 test_process pass for python3 + added some pe_parse test 2020-02-07 23:06:26 +01:00
hakril 889de363ca windows.injection now handle injection of py3 code ! 2020-02-06 00:03:10 +01:00
hakril bac3dcb55b Fix simple_x64 REX for python3 2020-02-05 23:57:34 +01:00
hakril 2f778b69f9 windows.pipe.create now accept a custom security descriptor as parameter 2020-02-03 21:42:34 +01:00
hakril 2fddd82f00 Adding pycompat.py for py2/py3 work in progress 2020-02-02 18:18:56 +01:00
hakril 46197e763a Fixed windows.winproxy.resolve (corresponding test already exist) 2020-02-02 18:17:36 +01:00
hakril a7175be425 Added/fixed some test 2020-02-02 18:11:13 +01:00
hakril f2a6489463 Added mov REG/SEGREG in simple_x86 + fix a bug in syswow64 on AMD do to a processor bug (Issue10) 2020-02-02 17:49:42 +01:00
hakril 2e1043ead4 Added some code to play with extended attributes 2020-01-26 16:02:38 +01:00
hakril b490130585 Aded new generated ctypes_generation 2020-01-26 15:55:21 +01:00
hakril d20083c57c windows.crypto.sign accept sin algo as parameter 2020-01-26 15:51:03 +01:00
hakril fb2b63b66d ctypes_generation now generate py3.6 compatible code :) 2020-01-18 23:18:25 +01:00
hakril b971fa5faf Added some functions to winproxy 2020-01-17 21:11:24 +01:00
hakril c5d8faaa4a Winstruct parser accept * in array size expression 2020-01-17 21:09:04 +01:00
hakril 5ae6fb2634 Added new ctypes definition 2020-01-17 21:08:20 +01:00
hakril c589a41902 [WIP] saving POC of symbol 2020-01-17 21:07:35 +01:00
hakril 7638080ee4 Added new service API allowing to find service by name easily 2019-11-14 13:31:20 +01:00
hakril 0ed859b95e Added support for simple expression in array (like [MAX_PATH + 1]) 2019-10-31 16:27:01 +01:00
hakril 6f55d2e48f Fix a bug in debugger when detaching after a Ctrl+c during a BP 2019-10-19 00:39:03 +02:00
1orenz0 5b55d4d693 [event_log] Add some more format type to support 2019-10-14 22:03:49 +02:00
1orenz0 fbfe4344d4 [event_log] some events does not have a template message 2019-10-14 22:03:49 +02:00
1orenz0 215afaa418 [event_log] add verbose option to wevtutil.py 2019-10-14 22:03:49 +02:00
1orenz0 91ef7da2e1 [event_log] Fix typo in wevtutil 2019-10-14 22:03:49 +02:00
1orenz0 8a14fe9174 [event_log] add realtime logger to wevtutil 2019-10-14 22:03:49 +02:00
1orenz0 4f92323abf [event log] export message_id instead of message_name
It's more consistent with the other classes
2019-10-14 22:03:49 +02:00
1orenz0 44d9d0dd35 [event log] Add example of what can be done with events 2019-10-14 22:03:49 +02:00
1orenz0 6dd314659d [event log] adding event channel metadata message ID 2019-10-14 22:03:49 +02:00
1orenz0 adb7d3b63a [event log] adding event metadata 2019-10-14 22:03:49 +02:00
1orenz0 b5371ddf33 [event log] still adding publisher metadata 2019-10-14 22:03:49 +02:00
1orenz0 4495eca6d0 [event log] add some more metadata 2019-10-14 22:03:49 +02:00
1orenz0 df28515b97 [event log] Expose message filename 2019-10-14 22:03:49 +02:00
1orenz0 6374f91fef [event log] Expose channel metadatas 2019-10-14 22:03:49 +02:00
1orenz0 6125a1fb15 [event_trace] Add a way to pass a Python object to an ETW trace's
context

It may be useful to pass a python object (e.g. class) to the ETW
processing callback. The ETW tracing API allows the user to fill out a
"Context" field with a pointer value that will be passed to the event
being sent, the rest is ctypes magic for wrapping the python object
into a native pointer value.
2019-10-14 22:03:49 +02:00
1orenz0 bfeb2e6dec [event_log] Configure an ETW trace to listen on specific keywords
By default EnableTrace will listen with a "KeywordsAny" value of
0xffffffff. Some event log providers send events with keywords over
0x100000000, so we need a mecanism to filter on thoses keywords.
2019-10-14 22:03:49 +02:00
1orenz0 536a60c040 [event log] Expose event keywords and publisher guid
Accessing the publisher guid is useful to setup an ETW trace, and we
need to know event keywords in order to activate the ETW session on the
correct "channels".
2019-10-14 22:03:49 +02:00
hakril 05ee89de81 Adding some service related definition + added services specific access right to security.py 2019-10-14 21:52:54 +02:00
hakril 80799fe411 Working on improving the Evt related api 2019-10-14 21:52:02 +02:00
hakril 265ef59011 Update/Fix PROCESSINFOCLASS enum + NtSetInformationProcess use a PROCESSINFOCLASS not a PROCESS_INFORMATION_CLASS 2019-10-08 14:00:56 +02:00
hakril 30b05d25f1 Improved MultipleInstr capabilities + fix a bug in x64 that failed to recognize 32b register name not uppercase 2019-09-20 16:18:16 +02:00
hakril 6bd45e8503 Added regkey.empty() based on RegDeleteTreeW 2019-08-13 14:57:56 +02:00
hakril 1e42553112 Added some test + added a com security fixture allowing allowed correct COM init accross all tests 2019-08-12 13:53:15 +02:00
hakril 168783af9d Improved CryptMsg API with some more properties 2019-08-12 13:50:08 +02:00
hakril b9fe4d19e5 Added ControlService + service.stop() + service.start() accept arguments 2019-08-08 10:28:22 +02:00
hakril 6fcba46739 Added <Raw> pseudo instruction to both assemblers + corresponding test 2019-08-07 17:42:56 +02:00
hakril 960838ae3c handle code now use gdef + added some handle tests 2019-08-07 17:25:36 +02:00
hakril 8a32e00f68 Handle documented key type and unkown one + add code to handle badly encoded values (REG_MULTI_SZ notably) 2019-08-07 14:48:26 +02:00
hakril 670bb713a2 Fix a bug about REG_SZ key non-null terminated in values enumeration 2019-08-07 09:47:31 +02:00
hakril 032de6a848 Moved bits.py to winobject/ + added windows.system.bits as entrypoint 2019-08-05 22:32:10 +02:00
hakril 7827a43d9a Fixed a logic bug in object manager + import bug in syswow.py 2019-08-05 22:31:00 +02:00
hakril b0fa864271 Added some API to winproxy 2019-08-05 22:27:07 +02:00
hakril 7c816acdda windows.system.registry does not use _winreg at all anymore 2019-08-05 22:26:28 +02:00
hakril 7f4ff75854 Rewrote windows.system.registry to handle unicode. added registry test (including unicode testing) 2019-08-05 16:56:48 +02:00
hakril 0697891026 Some improvment to ctypes generation + a lot of new definitions 2019-08-05 16:55:35 +02:00
hakril 15f399df6d Still playing with security-descriptor / SACL / required rights (MAXIMUM_ALLOWED does not work) 2019-06-28 10:34:20 +02:00
hakril b628ca336b Working on api to set security descriptor 2019-06-28 09:38:35 +02:00
hakril b160935747 Added current etw code (event_trace) 2019-05-31 09:06:09 +02:00
hakril 554a6b0572 Added some more ctypes defition 2019-05-18 23:35:52 +02:00
hakril f9104141e5 Added/refactored many ctypes_generation definitions 2019-04-26 13:49:55 +02:00
hakril 5794a92168 ctypes_generation now handle anonymous sub-struct/union 2019-04-26 13:43:41 +02:00
hakril 578392ffde Improve retrieving of event-log data type 2019-02-11 17:11:23 +01:00
hakril 44e5a09564 Few improvement in existing API + test of Winprocess.handles 2019-01-22 15:06:23 +01:00
hakril 4e8a765bd6 Added some generated def 2019-01-22 15:02:18 +01:00
hakril f3de7b528b go go gadget 0.5 2019-01-03 22:43:40 +01:00
hakril 252f6f8efa Update replace deprecated use of getfuncargvalue to please new pytest versions 2019-01-03 22:32:19 +01:00
hakril f53cd00bc4 cosmetic changes to doc + generate html doc 2019-01-03 22:20:19 +01:00
hakril 3fe7ee2cce Fix bug in debugger caused by on_setup new code 2019-01-03 22:00:01 +01:00
hakril 370210a610 Fix a bug in MEMORY_BASIC_INFORMATION64 extended struct + add related test 2019-01-03 21:51:35 +01:00
hakril 288e87a0d3 Update windows.security doc + add ref to module in doc 2019-01-03 21:50:17 +01:00
hakril abded9944d Regenerated ctypes 2018-12-28 21:22:29 +01:00
hakril d9a43a4a8b Update readme with Token/SecurityDescriptor demo + fix flag repr in README + small docstring fix 2018-12-28 21:21:30 +01:00
hakril c2f2f4c0a5 Flag repr does not print long 'L' at the end of hex value 2018-12-28 21:13:40 +01:00
hakril 771593f17d Fix in safe_execute_python to raise WindowsError if process die during execution 2018-12-21 18:53:55 +01:00
hakril a194f0be6b Fixed bug in WinProxy where error add bad func name + update winproxy function list in doc 2018-12-21 18:52:08 +01:00
hakril 4f62434dfb Moved lookup_sid to windows.utils + add Token to window.security + update doc about official Token path 2018-12-21 18:50:22 +01:00
hakril fb567c6a76 Added some samples output + document change Kernel32Error -> WinproxyError + fix sample/readme/doc related 2018-12-21 18:13:28 +01:00
hakril 784e669597 update debugger.py with new on_setup callback" 2018-12-21 16:22:38 +01:00
hakril 21e259fa73 Update some doc/samples for new module/features 2018-12-21 16:18:19 +01:00
hakril db44087bba Refactor thread code for simple token retrieving on Process/Thread objects 2018-12-21 16:07:10 +01:00
hakril f522f08e7f Fix token.py doc + improve NDR with new class + doc NdrString new behavior + update uac.py sample to match new NdrString 2018-12-21 16:05:37 +01:00
hakril a9a39bc53f Added multiple ctypes_generation definition + some winproxy functions 2018-12-21 15:31:51 +01:00
hakril 45ace331cb Added token sample + Debugger.on_setup sample 2018-12-21 15:27:04 +01:00
hakril 79ff18e06f Update doc/samples/test of windows.security 2018-12-21 15:26:29 +01:00
hakril 986664d01f update Doc + test + sample for token.py 2018-12-20 22:48:16 +01:00
hakril 8dc2d443d5 Update WMI docs / samples 2018-12-17 23:40:08 +01:00
hakril e5f87e1453 Fix setup.py to match new winproxy packages 2018-12-17 09:44:43 +01:00
hakril 6c4a5f7d65 Added LoadLibraryEx[AW] + FreeLibrary to winproxy 2018-11-27 14:38:29 +01:00
hakril 5df8cc96dc enum mapper is now a FlagMapper + improve winfunc parsing 2018-11-26 22:39:31 +01:00
hakril 460274d532 Process object now return new Token object (still WIP) 2018-11-24 22:59:01 +01:00
hakril 2a4bdd7e30 removing crypto ECRYPT_DATA_BLOB. now CRYPT_DATA_BLOB is extended_struct + testing new API in crypto object 2018-11-24 22:59:01 +01:00
hakril d936942d28 [WIP] improving Token object possibilities 2018-11-24 22:59:01 +01:00
hakril 24c5083633 POC of new Improved buffer utilities + sprint use dunder method __sprint__ if available in objects 2018-11-24 22:59:01 +01:00
hakril c3b85068e5 Added Retn to x86/64 assemblers + encryption_demo sample can now sign a file + [WIP] token improvement 2018-11-24 22:59:01 +01:00
hakril fff2f37781 Add WMI create-process sample + improved some sample feature/doc 2018-11-24 22:59:01 +01:00
hakril b6f57b8342 Code now use renamed/improved windows.com.Variant 2018-11-24 22:59:01 +01:00
hakril cf6c813002 ComInterface now expose a callback for ctypes error handling. Allow COM interface to change/handle the raised Exception 2018-11-24 22:59:01 +01:00
hakril b167c6e70f Made some improvement of error handling by ApiProxy + some new generated def 2018-11-24 22:59:01 +01:00
hakril 267eddb5fe Reworking windows.com.Variant + working on new wmi API + wmi test 2018-11-24 22:59:01 +01:00
hakril a18c08ee53 Working on new WMI interface + improved ComInterface errcheck 2018-11-24 22:59:01 +01:00
hakril e46dc48c37 Addapt codebase and tests to winproxy refactoring (replace Kernel32Error to WinproxyError) 2018-11-24 22:59:00 +01:00
hakril 77fca8bb0f Refactor winproxy into a directory 2018-11-24 22:59:00 +01:00
hakril bbde38ffe4 First version of windows.security based on clmntb work 2018-11-24 22:59:00 +01:00
hakril 0e52272ddc Fixed a warning in simple_x[86|64] 2018-11-24 22:59:00 +01:00
hakril 91cbcce38f Added some definition + POC of FlagExtractor 2018-11-24 22:59:00 +01:00
hakril 33ca0c9c34 Added many security-related defines + moved improved-psid in extended_structs 2018-11-24 22:59:00 +01:00
hakril 272ad24f15 Added extended-struct capabilities to simple_type.txt 2018-11-24 22:59:00 +01:00
hakril 967c18d521 Added POC WinProcess.memory_info + some crypto defines 2018-11-24 22:59:00 +01:00
hakril 0125f78c67 Quick fix for query_volume_information 2018-11-24 22:59:00 +01:00
hakril 570436120b Added some functions 2018-11-24 22:59:00 +01:00
hakril 1c21b77292 Add sign/verify methods to windows.crypto + POC/Play with improved ctypes buffer/array 2018-11-24 22:59:00 +01:00
hakril 7a313f57c1 Added some crypto-related ctypes_generation definitions + generate.py now try to check for out-of-order definition 2018-11-24 22:59:00 +01:00
hakril b253bc5873 Merge pull request #4 from jagotu/master
Ndr: Make sure Strings are null-terminated. Add NULL byte if not present.
2018-11-07 22:10:34 +01:00
JaGoTu 921f066fb8 Ndr: Make sure Strings are null-terminated
Prevents RPC_X_BAD_STUB_DATA when a non-null-terminated string is
provided as an argument.
2018-11-07 21:26:28 +01:00
hakril 2454bf815b Regenerate sphinx doc 2018-08-03 10:10:31 +02:00
hakril b3f1420d46 Updated README with new features description 2018-08-03 09:48:53 +02:00
hakril 19095f0e2f Fix typo in certificate test + add very simple test of windows.system.modules 2018-08-02 18:52:35 +02:00
hakril c228a0d5cb Added Certificate.distinguished_name and BaseSystemModule.name + some winproxy functions 2018-08-02 18:51:41 +02:00
hakril c97d149630 Added some ctypes_generation definitions 2018-08-02 18:42:36 +02:00
hakril afccd0da30 Added doc about how to install pfw in readme and sphinx doc 2018-08-02 18:41:08 +02:00
hakril e53f7ef34b Added some test for windows.system.object_manager 2018-08-02 18:38:48 +02:00
hakril e6a022f8be Add windows.system.edition 2018-07-13 18:08:00 +02:00
hakril a75de140d6 Added object manager samples to doc + fix Certificate.thum[b]print typo 2018-07-13 14:41:09 +02:00
hakril d232928780 Added some generated def + some winproxy functions 2018-07-13 14:33:50 +02:00
hakril c19241098a Improve object manager doc + add samples 2018-07-13 14:24:55 +02:00
hakril eb3b13016f Fix right-margin in sphinx doc CSS (thanks bruno) 2018-07-11 11:57:39 +02:00
hakril c59af86910 Renamed kernobj.py to object_manager.py and added to windows.system.object_manager + improve API + beginning of doc 2018-06-11 17:55:11 +02:00
hakril 041a354d17 Update some doc + document windows.system.modules 2018-06-11 11:09:48 +02:00
hakril 525432fecd Add a POC for windows.system.modules to replace winutils.get_kernel_modules() 2018-06-05 21:55:54 +02:00
hakril 1ee9a8bc46 new POC for breakpoint with parameters extraction 2018-06-05 21:54:26 +02:00
hakril 3dcd27a1ca Fix ntdll-registry winproxy error check + add LocalDebugger.current_thread to match Debugger API 2018-06-05 21:53:35 +02:00
hakril b223ed233e Fix stuff in service.py + update test 2018-06-05 11:59:06 +02:00
hakril 3d69ad3cb5 Add some definition in ctypes generation + winproxy wrappers; fix com.py imports 2018-06-05 11:38:57 +02:00
hakril a559c5c295 Update some doc / test + some ctypes generation definition 2018-06-05 11:34:52 +02:00
hakril 93bb9b6540 Add doc/sample/test for event log code 2018-06-05 11:30:25 +02:00
hakril 057d4e5408 Add scheduled_task code/doc-source/tests 2018-06-01 12:20:13 +02:00
hakril 2bea15ffe8 add current word on event logs 2018-05-12 00:17:34 +02:00
hakril 11e4afeef5 ctypes generation : added bitfield parsing/generation + update/fix some definitions 2018-05-12 00:16:45 +02:00
hakril 05e7b755b0 Fix CurrentProcess read/write memory to use ctypes.memmove -> raise on bad address -> no more segv 2018-05-12 00:13:57 +02:00
hakril 849d64378f Commit current work on scheduled tasks 2018-05-12 00:11:10 +02:00
hakril 8cc361b1f9 ctypes generation allow COM mission interface autocopy from a directory + support anon structs/enum in typedef 2018-04-16 19:54:09 +02:00
hakril e918d735a1 Tests injecting python in remote process now check that target python is installed 2018-03-28 23:14:41 +02:00
hakril 9e1400e4ad Forgot a file.. This is the real v0.4 2018-03-28 01:03:37 +02:00
hakril 3565474693 Let's call it a 0.4 ! 2018-03-27 21:33:06 +02:00
hakril 83f4b0c48b Fixing some doc / samples 2018-03-27 21:24:56 +02:00
hakril b88ce36acb Add somme Evt-related define/structs/functions 2018-03-27 20:46:54 +02:00
hakril 4564be8488 Adding IShellLinkW + commit generated defs 2018-03-27 20:44:54 +02:00
hakril 34c2d94bc2 Some fixes in code/samples/test 2018-03-27 20:37:30 +02:00
hakril 66852aae37 Add function NtAllocateVirtualMemory + NtFreeVirtualMemory 2018-03-23 12:43:31 +01:00
hakril 094979f7c0 Add NtWriteVirtualMemory + fix some winfunc param/ret-val type 2018-03-22 19:28:54 +01:00
hakril b2c3493f46 Improve com generated interface 2018-03-09 16:10:59 +01:00
hakril 9ef71ad9e1 Clean ICallInterceptor POC 2018-03-08 23:12:06 +01:00
hakril e40b9fb2ff Add quick POC of ICallInterceptor to COM samples 2018-03-08 22:45:26 +01:00
hakril af6943992a cgen: Function generated after COM, handle COM variadic (cdecl) defintion + Comimplem.IID generated avec _functions_ + Add some COM/ComInterceptor definitions 2018-03-08 22:35:54 +01:00
hakril babb743096 check we are on windows 2018-03-07 10:28:39 +01:00
hakril 8840b9fdb9 updated doc 2018-03-07 10:24:46 +01:00
hakril 03e252b53a Upgrade to sphinx 1.7.1 + small css fix + review/update/refactor doc samples 2018-03-05 01:06:30 +01:00
hakril 1dc13b1a35 Adding some PE related windef + CertFreeCertificateContext 2018-03-04 18:45:23 +01:00
hakril d91bc1a45a Fix a bug in com.init() when CoInitializeEx failed + fix test: test_wmi fail du to pytest default COM-security settings 2018-03-04 18:34:40 +01:00
hakril a057f8c130 class CertificateContext(PCERT_CONTEXT) replaced by Certificate(CERT_CONTEXT) + multi-received encrypt/decrypt test 2018-03-04 18:28:20 +01:00
hakril c20d443c29 windows.com.init does not raise anymore if CoInitializeEx fails but return error code + cosmetic 2018-03-03 16:55:40 +01:00
hakril 262b80c8c3 utils.get_(long|short)_path now handle unicode path using W func 2018-03-03 16:51:51 +01:00
hakril 805e735a88 Added some ctypes definitions 2018-03-03 16:49:53 +01:00
hakril 4499080a77 Remote load library now use LoadLibraryW and get_mapped_filename use GetMappedFileNameW: return unicode str in every case 2018-02-07 13:14:25 +01:00
hakril b2a72f11cc Add windows.pipe for simpler communication with injected process 2018-02-02 10:27:04 +01:00
hakril f682fbd8c1 Add transaction + window APIs to winproxy + get_mapped_filename raise on non-standard error (like aborted transaction) 2018-01-26 11:05:53 +01:00
hakril 4251b18041 Fix ctypes generation + COM interface dependance check + add IPersistFile, IShellLink, strucs/defs 2018-01-25 16:51:04 +01:00
hakril 82e464d527 Replaced old generate.py with new ctypes generation code ! 2018-01-19 18:11:16 +01:00
hakril 445de0b007 Commit generated def before switching generator code 2018-01-19 17:33:33 +01:00
hakril 61ddb4821a Working in new ctypes generation code and features 2018-01-17 01:17:55 +01:00
hakril 65726e706f Add Int X86/64 instruction 2018-01-13 16:40:21 +01:00
hakril 715a7fee95 Add CryptMsgVerifyCountersignatureEncoded[Ex] and some crypto definition 2018-01-13 16:39:53 +01:00
hakril 48b6758f7f Add exists/create to PyHKey 2018-01-13 16:38:29 +01:00
hakril f882bd1e35 Add wmi.gen_select for class select returning a generator + fom E_CRYPT define + CryptObj.nb_signer return 0 if CRYPT_E_INVALID_MSG_TYPE 2017-12-08 16:54:49 +01:00
hakril 4a75453a8b Clean and Improve WMI query API that now accept a Timeout 2017-12-08 14:49:03 +01:00
hakril 3490dc987f Default encrypt algo is now AES256_CBC + Fix import_pfx default flags to be able to use it for AES256_CBC simply 2017-12-07 15:40:47 +01:00
hakril 32de3cb824 Improve ApiSetMap resolve to match ntdll behavior + add sizekey option to encryption_demo genkey option 2017-12-06 10:21:40 +01:00
hakril 23837a0713 Improving volume objects + adding CurrentProcess.peb.apisetmap with ApiSetMap parsing capabilities 2017-12-04 10:12:41 +01:00
hakril 8f7adb8da1 Add fuller PEB structure + Improved UNICODE_STRING + other define 2017-12-04 10:01:40 +01:00
hakril f03bb89ae6 Working on time translation (filetime - unix - datetime) and windows volume objects 2017-11-28 10:50:02 +01:00
hakril 22224b52e2 Added utils.query_file_informations wrapper arround new winproxy.NtQueryInformationFile 2017-11-27 10:13:13 +01:00
hakril c135780ba9 Add Process.virtual_protect default value for 'old_protect' + add test for Improved LSA_UNICODE_STRING used in PEB.ProcessParameters + find_value now search in ntstatus values 2017-11-24 17:46:07 +01:00
hakril f54599568d Working on eventlog 2017-11-24 17:17:35 +01:00
Clement Rouault 5a5baa7bcd Add ctypes_generation extended structs _LSA_UNICODE_STRING.py 2017-11-17 15:14:10 +01:00
Clement Rouault d12bae6dbb Remove 'WinUnicodeString' and add un extended struct _LSA_UNICODE_STRING: simplify lots of things 2017-11-17 15:13:34 +01:00
Clement Rouault d3ca30b229 Winstruct parser now handle comments in winstructs source files 2017-11-17 15:10:19 +01:00
Clement Rouault a0ffea68b7 Add a example of x86.assemble in the README 2017-11-15 17:29:11 +01:00
Clement Rouault 51bc3fdf7c Improve _GUID & typedef definition + add a sample using gdef.meta to search for a name/value in generated defs 2017-11-15 15:20:38 +01:00
Clement Rouault a6aa8b86ea Fix typo in rpc windef and improve NDR-related exception message 2017-11-15 11:05:54 +01:00
hakril d9db5ba428 utils.create_file_from_handle now handles binary opening mode 2017-11-15 09:00:38 +01:00
Clement Rouault be68ba8b15 Testing a new generated file: meta.py 2017-11-10 17:29:50 +01:00
Clement Rouault 7929a31bf7 clean wintrust.py: add def to generated_ctypes + use gdef.IID for wintrust IID 2017-11-10 14:40:16 +01:00
Clement Rouault 4e5733c2c5 Process.prioroty now use the FlagMapper 2017-11-10 14:20:59 +01:00
Clement Rouault 8ba325afd2 Add a new FlagMapper to easily transform int to Flag and change to code use it 2017-11-10 13:47:27 +01:00
Clement Rouault 4efae2194d Adding Process.priority + fix in WMI raised exceptions + add x86.Iret 2017-11-10 11:12:24 +01:00
hakril 14b1cbcf75 Adding improved MEMORY_BASIC_INFORMATION structs 2017-11-10 09:04:22 +01:00
Clement Rouault 5a79e15440 Improve WMI capabilities by adding access to various namespaces + listing methods + add CurrentProcess.load_library 2017-11-08 17:55:47 +01:00
Clement Rouault e07d4dbe0c Added th description from the readme at the beginning of the documentation 2017-10-20 17:10:30 +02:00
hakril c848f33729 Pushed new HTML doc, changed version to 0.3. Ready for hack.lu 2017-10-15 00:17:43 +02:00
hakril c3f9d87c82 Add missing doc sources 2017-10-15 00:13:56 +02:00
hakril 2094ab4ad4 Fix some docstring + re-add windows.test.pop_proc_[32|64] + fix all samples + few doc adapt 2017-10-15 00:13:07 +02:00
Clement Rouault c7fef877f0 Testing some crypto stuff 2017-10-13 17:56:36 +02:00
hakril ba6b22ac84 testing crypto stuff 2017-10-12 08:13:42 +02:00
hakril 930c992be3 Working on improving crypto stuff 2017-10-09 09:11:48 +02:00
Clement Rouault f6e151a7d5 Adding some crypto api 2017-10-06 17:32:24 +02:00
Clement Rouault c12a0c45f9 Add windows.system + ALPC + RPC + winproxy demo to README.md 2017-10-06 15:10:04 +02:00
Clement Rouault 5ee74d5b8f Update rpc doc + sample + new rpc function + new winfunc definition file + fix setup.py 2017-10-05 16:22:16 +02:00
Clement Rouault a183e468ca fix dbgprint to use hardcoded dict + improve rpc client forge_call + new ndr varying string 2017-10-03 17:30:38 +02:00
Clement Rouault bd5976dce2 Added alpc + rpc tests files 2017-09-18 11:11:33 +02:00
Clement Rouault 7947ace02d Add alpc[Client|Server] __del__ to close handles + NtAlpcDisconnectPort + test 2017-09-15 17:54:19 +02:00
Clement Rouault b9a00b2ed7 add rpc.rst doc + rename endpoint_map_alpc + rename ndr EptMapAuth 2017-09-14 17:24:18 +02:00
Clement Rouault 5301f91927 Add sample for thread + fix code to get a WinProcess from a pid not using WinProcess(pid=xxx) + test 2017-09-11 18:20:49 +02:00
hakril b3117ce4e3 pytest integration finished + moved tests/ to top dir 2017-09-10 18:57:59 +02:00
Clement Rouault 492b6f4f02 pytest added --leaks for leak check + test Handle.description 2017-09-08 17:53:59 +02:00
Clement Rouault 7db5620210 more pytest POC + fixed debugger code + test FunctionHXBP 2017-09-07 17:13:59 +02:00
Clement Rouault 89e486cd95 Working on rewriting of tests with pytest 2017-09-06 18:42:54 +02:00
Clement Rouault fccd2a49e6 Add doc to RPC + RPC_IF_ID generated-extended + lsass sample 2017-08-30 18:29:49 +02:00
Clement Rouault d44a3b032e Add extended struct to ctypes generation + extended IID now in winstructs.py and used everywhere 2017-08-29 11:39:43 +02:00
Clement Rouault 1fe5b912be Add some ALPC samples to the documentation 2017-08-28 17:09:49 +02:00
Clement Rouault 1941adc93f Working on RtlGetUnloadEventTraceEx - adding function and struct + fix remotectypes char-array in struct 2017-08-17 18:51:07 +02:00
Clement Rouault e9c62a125c add system.build_number + better handling of closing python in Winprocess.__del__ 2017-08-17 18:49:42 +02:00
Clement Rouault c75dda60b5 Fixed get_kernel_modules for syswow64 process 2017-08-17 13:51:36 +02:00
Clement Rouault 16e29bd938 Added a sample for Debugger.attach 2017-08-16 18:07:00 +02:00
Clement Rouault c76a50c045 add doc to alpc.py + improve doc now that Winstruct are documented 2017-08-16 17:38:18 +02:00
Clement Rouault bd6a3d35d5 Created sub-directories in samples/ 2017-08-16 17:37:26 +02:00
Clement Rouault 8b9a71edc2 Add real doc for windows.generated_def 2017-08-16 15:11:23 +02:00
hakril 3d33c97335 add system.windir + needed winfuncs 2017-08-16 09:25:23 +02:00
Clement Rouault 8d139bce79 Working on sphinx doc generation for windows.generated_def 2017-08-11 19:06:50 +02:00
Clement Rouault 61ac5c8c5d Fix EnumValue pickling for protocol 2 2017-08-10 17:07:41 +02:00
Clement Rouault 928a2744d5 Change RPC_SYNTAX_IDENTIFIER to RPC_IF_ID + update setup_hook + some add to wincli 2017-08-04 17:28:46 +02:00
Clement Rouault f43749aa07 [WIP] new hook method + winfunc APIs in winproxy 2017-08-04 17:19:27 +02:00
Clement Rouault d1cadf062a working on windows.alpc + fix in current_process.threads 2017-08-04 17:18:41 +02:00
Clement Rouault aa22f1515d Working on new windows.alpc 2017-07-28 09:20:40 +02:00
Clement Rouault 6898ac02fa First try at MemBP.on_error callback 2017-07-18 12:48:45 +02:00
Clement Rouault f08953f4ae rewrite of alpc.py + adapt rpc/client.py 2017-07-12 16:29:02 +02:00
Clement Rouault 5d34493356 commit alpc.py before rewriting 2017-07-12 16:27:43 +02:00
Clement Rouault 89fe39fadf Adding some ALPC struct/funcs 2017-07-11 18:42:51 +02:00
Clement Rouault 5e2ecf2af9 Still working on RPC over alpc 2017-07-06 18:11:32 +02:00
Clement Rouault aff6ee4e17 replace PORT_MESSAGE struct def with PORT_MESSAGE[32|64] + FunctionBP can get the function via a class parameter 2017-06-21 13:16:22 +02:00
Clement Rouault ae5a211613 fix SIZE_T definition to ctypes.c_size_t + fix MessageAttribute._get_required_buffer_size 2017-06-08 18:22:24 +02:00
hakril 1a7e342318 Add Winprocess.limited_handle for QUERY_LIMITED_INFORMATION api call 2017-06-07 20:00:37 +02:00
Clement Rouault a5688076a6 add uac sample 2017-06-07 11:45:59 +02:00
Clement Rouault a13b287202 Clean some rpc/alpc code + add ndr.NdrCString 2017-06-07 11:45:11 +02:00
Clement Rouault 4c8747b628 Add winproxy.MessageBox[AW] 2017-06-07 11:39:37 +02:00
Clement Rouault 1a73fe713b Add missing psid.py + some rpc fix + alpc sample + wincli 2017-05-24 17:49:46 +02:00
Clement Rouault a89854a045 PrintBP now accept a pre-format fonction to forge new format parameters 2017-05-24 17:45:27 +02:00
Clement Rouault 3c21d8c59c token.integrity is now settable 2017-05-24 17:43:34 +02:00
Clement Rouault 9461d4a2fb Add structs/def/funcs + Service.start() 2017-05-24 17:40:31 +02:00
Clement Rouault 5b17cc988f simple_x64 does not add extra unwanted REX for some 'Slash [MEM]' instruction 2017-05-24 17:33:40 +02:00
Clement Rouault e5e9ff7a47 windows.alpc + windows.rpc first version (manual_uac works with those) 2017-05-19 17:14:10 +02:00
Clement Rouault d24e62e319 Add PrintBP + few fix in Debugger + simple string-address resolution in localdebugger 2017-05-19 15:39:32 +02:00
Clement Rouault bc3c033e84 Added some definitions for SID/Privilege/others 2017-05-19 15:37:26 +02:00
Clement Rouault dbd98c93ed fix Process.ppid implem + new version does not enum processes 2017-04-28 17:29:17 +02:00
Clement Rouault 48fbeaee77 Fix bug in debugger: close EVENT_INFO hFile only if not NULL 2017-04-27 14:10:03 +02:00
Clement Rouault f9a650fcf3 WinThread is not a THREADENTRY32 anymore + add Winprocess.peb.exe 2017-04-27 12:06:04 +02:00
Clement Rouault c0d03a2f58 Fix some handle leak, debugger close hFile on event + enumerate processes/threads close snap handle 2017-04-26 14:46:45 +02:00
Clement Rouault feb76b48c3 unit tests now check for uncollectable-object (gc.garbage) 2017-04-26 11:07:52 +02:00
hakril be5cbe2631 Winprocess.peb not a fixedproperty anymore to prevent ref-cycle + add windows.crypto to setup.py 2017-04-24 22:43:49 +02:00
hakril 8aa71f8c44 Fix remote execute_python in multiple process where python.dll is load at differents addresses 2017-04-21 21:22:24 +02:00
Clement Rouault b418d85a5a Fix test_exe_in_module_list for python 64b 2017-04-21 17:39:05 +02:00
Clement Rouault 3f6131d621 Fix implem of bp exe!(offset|API) + add test for this case 2017-04-21 17:30:18 +02:00
Clement Rouault db6cec9031 Add PEB.Mutant + PEB.ImageBaseAddress in PEB definition 2017-04-21 17:01:45 +02:00
Clement Rouault 120e9bfa6f Add exe in the debugger list of modules (for bp) 2017-04-21 15:03:48 +02:00
Clement Rouault 799bca8d3f Fix BitsCopyCallback callback prototype + print error code on bits job error 2017-04-20 11:52:56 +02:00
hakril 979d1bd418 Regenerate doc with sphinx 1.5.5 2017-04-13 13:11:35 +02:00
Clement Rouault 9cb9c2a9a0 Update doc build 2017-04-13 11:42:52 +02:00
Clement Rouault 1b0f1e9507 update winproxy list of function 2017-04-13 11:41:48 +02:00
Clement Rouault 654e6bff71 change remote_calc sample to use notepad + add demo of test_code sample + Stos[BWD] in simple_x86 + 2017-04-13 11:14:09 +02:00
Clement Rouault 344678de02 Add doc/sample for CryptObject 2017-04-12 17:20:37 +02:00
Clement Rouault 70d330961a exception reraised by registry have a winerror + remove dead code windows windows.com 2017-04-12 17:20:37 +02:00
Clement Rouault 0902618312 Add few test for windows.crypto + fix a syswow test 2017-04-12 17:20:37 +02:00
Clement Rouault b31702f783 Add BITS COM wrappers 2017-04-12 17:20:37 +02:00
Clement Rouault 81df41339b Improve windows.com.IID __repr__ and __eq__ + interface IBackgroundCopyCallback + COMImplementation.QueryInterface now returns better value allowing marshalling 2017-04-12 17:20:36 +02:00
Clement Rouault a6eb669099 Imprive windows.com.IID + add some BITS Interface/structs 2017-04-12 17:20:36 +02:00
hakril ab01eba54f More doc + fix sample on windows.crypto 2017-04-12 17:20:36 +02:00
hakril 1550c5ae3e adding sample for windows.crypto 2017-04-12 17:20:36 +02:00
hakril f1b1bec903 Working on documentation of windows.crypto 2017-04-12 17:20:36 +02:00
Clement Rouault e08720e49a Fix pickle/unpikcl of Flag + StrFlag for protocol 2 + StrFlag.__str__ is the string + test 2017-04-12 17:20:36 +02:00
Clement Rouault 21c179ed2e add sample for windows.crypto 2017-04-12 17:20:36 +02:00
Clement Rouault 4183646b28 add Handle.infos + Process.open_token 2017-04-12 17:20:36 +02:00
Clement Rouault 5431b57560 fix ImprovedVariant.asbool + com.create_instance accept a context parameter + fix RemoteWCharP.value logic + winutils.decompress_buffer 2017-04-12 17:20:36 +02:00
Clement Rouault a107656402 Add SACL/DACL related struct to func/def/structs + some winerror + some crypto func + utility func 2017-04-12 17:20:36 +02:00
Clement Rouault 64f56d3977 Identified a possible bug with Debugger._explicit_single_step + some DBGPRINT 2017-04-12 17:20:35 +02:00
Clement Rouault d2582d5e09 Renamed some error check method with intelligible name + some security functions def 2017-04-12 17:20:35 +02:00
Clement Rouault 3f39ca9f0c More work on windows.crypto and Add an encryption sample POC 2017-04-12 17:20:35 +02:00
Clement Rouault 8743883068 working on crypto.certificate.CryptObject 2017-04-12 17:19:01 +02:00
hakril ae02d9e916 Add some User32 API 2017-04-12 17:19:01 +02:00
Clement Rouault 98bc95204d still Working on windows.crypto object + API + test 2017-04-12 17:19:01 +02:00
Clement Rouault 68e809728a Working on windows.crypto object + API + test 2017-04-12 17:19:01 +02:00
hakril d5b70d829f Playing with future windows.crypto API / class 2017-04-12 17:19:01 +02:00
hakril 28b2596483 Fix PVOID arguments in function generated + add some func/struct from CryptoAPI 2017-04-12 17:19:01 +02:00
Clement Rouault 50e7a1f2e3 Still Working on CryptoAPI 2017-04-12 17:19:01 +02:00
Clement Rouault 5478bda8bc Working on CryptoAPI 2017-04-12 17:19:01 +02:00
hakril 15e40da1ca Playing with CryptoApi 2017-04-12 17:19:01 +02:00
hakril d2b801cada Fix handle_exit_process + detach in Debugger to prevent keeping ref on process + fix pe_parse IATHook: all test pass 2017-04-12 17:19:01 +02:00
hakril 8653c4c1e4 No-closure pe_parse pass the test of WindowsTestCase 2017-04-12 17:19:01 +02:00
hakril f863d75eee exception is raised if remote dll injection fails 2017-04-12 17:19:01 +02:00
hakril bc7656da05 [WIP] pe_parse refactor, imports and exports works without closure by code in dirty 2017-04-12 17:19:01 +02:00
hakril 03aec90d63 WIP: fixing handle 'leak' in dbg that require manual garbare collection for now 2017-04-12 17:19:01 +02:00
hakril 861884099f Better handling of read_string for string at the end of readable memory 2017-04-12 17:19:00 +02:00
hakril 63cdb3bbeb Better handling of read_wstring for wstring at the end of readable memory 2017-04-12 17:19:00 +02:00
hakril e17400ed63 Debugger.detach remove self.target + better handling/clean of Thread/Process handles 2017-04-12 17:19:00 +02:00
Clement Rouault e58fb73f3b Fix VARIANT interpretation of VT_BOOL 2016-12-06 16:20:02 +01:00
Clement Rouault 11bdbd8873 Remove TrapFlag when detaching debugger 2016-08-23 11:56:54 +02:00
Clement Rouault 8942efa36c Fix sample for FunctionBP 2016-08-22 14:05:29 +02:00
Clement Rouault 59776e40c3 Let's call it a V0.3 2016-08-22 13:50:44 +02:00
Clement Rouault c7b0b8d0aa Update doc for COMImplementation usage 2016-08-22 13:50:08 +02:00
Clement Rouault f045b58391 Fix README links for new /docs tree 2016-08-22 09:47:06 +02:00
Clement Rouault 83e8dcd56b Rename /doc to /docs + commit build/ for the new source of github pages method 2016-08-19 16:21:34 +02:00
Clement Rouault 3773d87993 Add missing sample debug_functionbp.py 2016-08-19 15:18:10 +02:00
Clement Rouault 19b168df07 Add target_dll and target_func to TransparentApiProxy + test_code.py handles raw [x86|x64] 2016-08-19 15:15:04 +02:00
Clement Rouault 943945225a Improve debugger/BP doc + add sample + small fixes in WMI/LocalDebugger + new data in ApiProxy for FunctionBP 2016-08-19 15:06:26 +02:00
Clement Rouault 0d38c1e268 Add NtAlpcConnectPortEx in winproxy 2016-08-19 10:34:41 +02:00
Clement Rouault c7a2f7663a Add PRAGMA_PACK for struct defintion in struct_parser and use it for tagBITMAPFILEHEADER 2016-08-08 18:11:44 +02:00
Clement Rouault 20fe59cf78 Implement Debugger.detach 2016-08-08 10:39:25 +02:00
Clement Rouault 304c7788db Add structure def for BITMAP (screenshot API) 2016-08-05 18:14:24 +02:00
Clement Rouault 2767a08624 Fix bug in Process.name + create_process show_windows=True by default 2016-07-29 17:32:14 +02:00
Clement Rouault fe4d41db47 Add/Update some doc 2016-07-27 18:20:36 +02:00
Clement Rouault bc4952d513 Fix test_debugger with new dll format in _resolve + some test of syswow peb/context 2016-07-21 18:40:49 +02:00
Clement Rouault f54a64670e Add context_syswow/set_syswow_context + debugger able to handle BP in 64b part of syswow process 2016-07-20 18:21:28 +02:00
Clement Rouault 53acf21a2f Fix x64 Mov Reg, Imm32 (sign extended) 2016-07-20 13:16:39 +02:00
Clement Rouault 48a40fa520 Improve MemBP API + restore target memory on break 2016-07-20 13:16:06 +02:00
Clement Rouault 2fec6a68b1 Fix calcul of full_page_events (translate events to set) in remove_bp 2016-07-18 17:40:50 +02:00
Clement Rouault 98a481ca93 DisabledMemoryBreakpoint now reput only the non-deleted BP + fix syntax (cc heurs <3) 2016-07-18 17:38:46 +02:00
Clement Rouault 13f231d6ad debugger disable memory breakpoint before calling membp.trigger() 2016-07-18 16:30:17 +02:00
Clement Rouault 3184cbdeab MemBP has explicit event RWX, add GetProcessDEPPolicy, add Debugger API to disable/re-enable memory BP 2016-07-18 16:23:11 +02:00
Clement Rouault 9ebb25017b Better message / WindowsError raised when process die during safe_execute_python 2016-07-18 14:04:37 +02:00
Clement Rouault 19205f73a1 Improve debugger handling of memBP for future use + fix MemBP prot init + add failing test of multitple BP with diff prot 2016-07-13 18:23:26 +02:00
Clement Rouault 82621b881a Add get_memory_breakpoint_at to debugger + fix token_user in process + add prot param to virtual_alloc 2016-07-13 16:28:31 +02:00
Clement Rouault d90e461bcf Playing with advanced breakpoint 2016-07-13 13:54:42 +02:00
Clement Rouault 1f6ffd043c Better implementation of MemoryBP 2016-07-13 13:50:44 +02:00
Clement Rouault 1590f634d7 Add ReadFile to winproxy 2016-07-13 10:11:05 +02:00
Clement Rouault 125888cd60 Add sample / test for memory breakpoint and single step 2016-07-13 10:10:12 +02:00
Clement Rouault 8bf3c0312c Checking the beginning of the MemBP is important too... 2016-07-08 17:23:26 +02:00
Clement Rouault 400b7b91b0 First try at all BP remove + check range on MemBP for call to .trigger() else ignore 2016-07-08 17:18:57 +02:00
Clement Rouault 2f06e9e844 Commit <a l'arrache> for a quick implem of del_bp on standard BP 2016-07-08 16:21:57 +02:00
Clement Rouault 4069c0892a Add com sample + update readme/todo 2016-07-08 13:58:05 +02:00
Clement Rouault d2883e9c38 Add a sample on memoryBP + singlestep (cc Heurs :D) 2016-07-08 11:46:15 +02:00
Clement Rouault fb9cd75f40 Add a sample for the debugger API 2016-07-08 11:37:49 +02:00
Clement Rouault 9a980d87b3 First try at single_step and memory breakpoints in Debugger + test 2016-07-07 17:43:28 +02:00
Clement Rouault cf6c48b418 Remove some commented old code + fix read/write of REG_QWORD values in registry 2016-07-07 17:41:57 +02:00
Clement Rouault b74d7a9e7e Add Jmp/Call Far 16:32 in simple_x86 + clean and simplify syswow-to-64 execution 2016-07-07 13:16:36 +02:00
Clement Rouault 2d1f93da45 Add Debugger.attach + simple single_step implementation 2016-07-06 11:00:30 +02:00
Clement Rouault 886b445e0e Token.integrity returns a Flag + fix simple_x64 on SIB use for [r13] 2016-07-04 18:33:35 +02:00
Clement Rouault 2f4eef23aa Add NtCreateFile to winproxy 2016-07-04 18:32:36 +02:00
Clement Rouault 37de039b65 Improve ctypes generation + new struct/func/def for crypt32.dll 2016-07-01 18:13:09 +02:00
Clement Rouault 3069b93d21 Remove winproxy.OptionExport + Add some classes ton MEMORY_INFORMATION enum 2016-07-01 18:12:28 +02:00
Clement Rouault c2e7b43b9f Add R8 to ECONTEXT64 2016-07-01 17:06:20 +02:00
Clement Rouault 2526727931 Add __mul__ on Instruction + x64 on test_code 2016-06-29 15:07:14 +02:00
Clement Rouault 56b8264ffd Add x64.assemble + sample test_code 2016-06-28 11:31:53 +02:00
Clement Rouault ce7866cbf3 Improve x86.assemble for int + a demo of code tester 2016-06-28 11:03:57 +02:00
Clement Rouault ed42580b4e Fix some x64 encoding of [NEW_REG] | pop/push [RAX] doest not contains a useless prefix anymore 2016-06-27 14:51:47 +02:00
Clement Rouault 75c64e4490 Create usable API for sub ctypes generator 2016-06-24 16:57:21 +02:00
Clement Rouault 86fe9c9f82 Update generation for ntstatus and add a parallele define module to ApiProxy 2016-06-24 16:55:25 +02:00
Clement Rouault 75c48103c4 Added SetConsoleCtrlHandler to winproxy 2016-06-17 11:14:46 +02:00
Clement Rouault 4a0669ad41 Add COMImplementation 2016-06-17 10:18:12 +02:00
Clement Rouault acdd3ac93e new_generate.py replace old one 2016-06-16 15:45:18 +02:00
Clement Rouault 48f6eed961 Working on 'API' to easily import/use new_generate 2016-06-16 15:11:29 +02:00
Clement Rouault 4436be72c0 first working version of new_generate 2016-06-16 13:31:16 +02:00
Clement Rouault e42dafee7c working on cleaner generate.py 2016-06-16 11:16:33 +02:00
Clement Rouault 2289895423 Add test + fix Imm32 stuff in x64 2016-06-13 18:19:38 +02:00
Clement Rouault 0f5fce424b Fix test_hook to disable the hook after test 2016-06-13 18:18:59 +02:00
Clement Rouault 0b32302591 Remove generate_callback_stub (only IATHook are impacted) 2016-06-09 18:51:48 +02:00
Clement Rouault e1f7f1e500 execute_python doest not reinject the shellcode everytime + test hook 64b 2016-06-08 11:01:19 +02:00
Clement Rouault f23357c13e Testing hook without generated stub + new hook test in new file 2016-06-07 19:59:00 +02:00
Clement Rouault bc9d3b61ef Draft version of system handles 2016-06-07 17:13:44 +02:00
Clement Rouault 971610bbe3 [WIP] system.handles 2016-06-06 17:24:30 +02:00
Clement Rouault 3d51278039 fix UNICODE_STRING.str / test assemblers / improve com_parser for future work 2016-06-06 17:24:10 +02:00
Clement Rouault 899e6b9147 Removed a debug print 2016-05-23 09:48:00 +02:00
hakril aaa680c61c Fix CurrentProcessReadSyswow for windows10 2016-05-22 12:00:34 +02:00
Clement Rouault 976ce78455 First try to replace unexisting GetThreadId on XP 2016-05-20 18:03:36 +02:00
Clement Rouault 8bee07b8dc Add REG_QWORD handling in registry.py 2016-05-19 10:59:43 +02:00
Clement Rouault d09cb4ca51 Add winproxy.is_implemented 2016-05-18 10:54:58 +02:00
Clement Rouault dfe8217259 Fix system.version_name on windows10 2016-05-13 16:31:07 +02:00
Clement Rouault 55c4721774 Fix exception stack update in LocalDebugger 2016-05-09 18:52:55 +02:00
Clement Rouault 5c8125a9ff Add get_short_path / get_long_path to windows.utils 2016-05-03 11:23:38 +02:00
Clement Rouault 10a803e9c9 Add shr/shl + small fix simple_x64 Imm8 + execute_64bits_code_from_syswow able to return ULONG64 2016-05-02 18:21:09 +02:00
Clement Rouault d7127c108c NtStatusException is a WindowsError 2016-05-02 16:23:13 +02:00
752 changed files with 553970 additions and 19859 deletions
+76
View File
@@ -0,0 +1,76 @@
# V0.1
name: Pytest
on: [push, workflow_dispatch]
# Allows you to run this workflow manually from the Actions tab
jobs:
build:
runs-on: windows-latest
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
python-version: [2.7, 3.6, 3.11]
python-architecture: [x86, x64]
include:
# Translate architecture to bitness for py.exe commandline
- python-bitness-to-test: 32
python-architecture: x86
- python-bitness-to-test: 64
python-architecture: x64
steps:
- uses: actions/checkout@v4
# Pfw testing need both 32b & 64b of tested python version for cross-bitness python injection tests
## Install the 32bits version of python3 asked
- name: Set up Python3 ${{ matrix.python-version }} x86
if: ${{ matrix.python-version != '2.7' }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version}}
architecture: x86
update-environment: false
## Install the 64bits version of python3 asked
- name: Set up Python3 ${{ matrix.python-version }} x64
if: ${{ matrix.python-version != '2.7' }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version}}
architecture: x64
update-environment: false
# Manually install python2.7 (both version at once)
- name: Set up Python2.7 ${{ matrix.python-version }} x86 & x64
shell: bash
if: ${{ matrix.python-version == '2.7' }}
run: |
choco install python2 --version=2.7.18 -y --no-progress --params '"/InstallDir:C:\tools\python27"'
choco install python2 --version=2.7.18 -y --no-progress -x86 --params '"/InstallDir:C:\tools\python2732"' --force
- name: Listing python versions availables
run: py -0
# Install PythonForWindows for both bitness
- name: Installing PythonForWindows for both bitness
run: |
py -${{ matrix.python-version}}-32 setup.py install
py -${{ matrix.python-version}}-64 setup.py install
- name: Installing pytest & capstone-windows
run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pip install pytest capstone-windows
# Testing
- name: Testing
run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pytest --junitxml=junit/test-results.xml -s -k "not known_to_fail" -v tests/
- name: Publish PyTest Results
uses: EnricoMi/publish-unit-test-result-action/windows@v2
if: always()
with:
files: junit/test-results.xml
check_name: PyTest Results for ${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}}
secondary_rate_limit_wait_seconds: 90
seconds_between_github_writes: 10
seconds_between_github_reads: 1
+8 -1
View File
@@ -1,2 +1,9 @@
*.pyc
doc/build
doctrees
*.inv
*.pickle
*.ignore
.vscode/
.cache/
dist/
+85
View File
@@ -0,0 +1,85 @@
1.0.0:
Unicode everywhere:
Whenever possible, PythonForWindows use W() (wide) APIs and returns unicode string.
This means `str` for python3 & `unicode` for python2.7
windows.system.build_number now returns a int : the actual build number
windows.system.build_number became windows.system.versionstr
Between 0.4 & 0.5:
== New features ==
- windows.security
- SecurityDescriptor / ACL / ACE objects
- Improved Token object
- windows.debug
- New callback Debugger.on_setup
== Change / Break ==
- windows.winproxy
- Kernel32Error replaced by WinproxyError
- It seemed weird that ntdll/advapi32/etc raised Kernel32Error..
- windows.wmi
- Wmi API changed, most of them do not return dict anymore but WmiObject
- It can be used like mapping
- It offers improved feature
- real error display handling :)
- windows.com
- ImprovedVariant renamed Variant + new api variant
- This is not documented yet
- windows.rpc.ndr
- ndr strings add final \x00 when packing if not present
- crypto
- CertificateStore.find return None if certif is not found (was raising in the past)
- removed ECRYPT_DATA_BLOB
- new CRYPT_DATA_BLOB is an _extended_struct :)
Since 0.35:
* WinProcess.get_mapped_filename can now raise on non-standard error (like: ERROR_TRANSACTION_NOT_ACTIVE)
* WinProcess.get_mapped_filename now use GetMappedFilenameW (returning an unicode string)
* CertificateContext is replace by Certificate
* CertificateContext was a PPCERT_CONTEXT. Certificate is a CERT_CONTEXT (not a pointer anymore)
* EHCERTSTORE renamed to CertificateStore
* added windows.pipe
Since 0.3:
* Rewrote pe_parse to minimize closure (allowing the refcount to del all ref to WinProcess when the debugger detach it)
* Fix debugger.detach / handling on exit_process
Since 0.2:
* NtStatusException is now a WindowsError
* Add shr/shl RM32(64)/Imm8
* Small fix simple_x64 Imm8 encoding
* `execute_64bits_code_from_syswow` able to return ULONG64
* utils.get_short_path / utils.get_long_path
* Object returned by `windows.native_exec.create_function` has an attribute `code_addr` with the address of the executable code
* add `windows.winproxy.is_implemented` Ex: windows.winproxy.is_implemented(windows.winproxy.QueryWorkingSetEx)
* registry.py handle REG_QWORD manually (_winreg does not)
* CurrentProcessReadSyswow doest not use ``current_process.handle`` anymore but ``OpenProcess(current_process.pid)`` (Compat windows10 where method 1 doest not work)
* Add: system.handles (winobject\handle.py)
* You can have multiple execute_python_unsafe at the same time in the same process (didn't know: consequence of new injection code)
* WinProcess.execute_python does not regenerate/reinject the python_exec_shellcode for each execution
* generate.py cleaned with class and stuff / usable for extern project (cc lkd)
* Added COMImplementation to com interface
* fix x86.assemble + add x64.assemble | fix some encoding problem in x64
* Add test_code.py sample
* Remove OptionExport from winproxy
* MemoryBP + single_step for windows.debug.Debugger
* Possibility to delete breakpoints in windows.debug.Debugger
* Add Context.func_result as abstract register for EAX/RAX
* Can retrieve 64b context of syswow thread via context_syswow/set_syswow_context
* Debugger handle breakpoint in 64b part of syswow process
* ReadSyswow64Process is now a Process (allows to parse exports of remote PEB64 of syswow process)
* Added Debugger.detach
+1 -1
View File
@@ -1,4 +1,4 @@
Copyright (c) 2016, Rouault Clement
Copyright (c) 2016-2024, Rouault Clement
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
+488 -33
View File
@@ -1,18 +1,53 @@
# PythonForWindows
PythonForWindows is a base of code aimed to make interaction with `Windows` (on X86/X64) easier (for both 32 and 64 bits Python).
[![Pytest](https://github.com/hakril/PythonForWindows/actions/workflows/mypytest.yml/badge.svg?branch=master)](https://github.com/hakril/PythonForWindows/actions/workflows/mypytest.yml)
PythonForWindows (PFW) is a base of code aimed to make interaction with `Windows` (on X86/X64) easier (for both 32 and 64 bits Python).
Its goal is to offer abstractions around some of the OS features in a (I hope) pythonic way.
It also tries to make the barrier between python and native execution thinner in both ways.
There is no external dependencies but it relies heavily on the `ctypes` module.
Some of this code is clean (IMHO) and some parts are just a wreck that works for now.
Let's say that the codebase evolves with my needs and my curiosity.
Let's say that the codebase evolves with my needs, my researches and my curiosity.
Complete online documentation is available [here][ONLINE_DOC]
You can find some examples of code in the [samples directory][SAMPLE_DIR] or [online][ONLINE_SAMPLE].
Parts of PythonForWindows are used in the [LKD project][LKD_GITHUB].
PythonForWindows is principally known for:
- its ALPC-RPC Client (see [samples](https://hakril.github.io/PythonForWindows/build/html/sample.html#windows-rpc))
- its generated [ctypes definitions](https://github.com/hakril/PythonForWindows/tree/master/windows/generated_def).
If you have any issue, question or suggestion do not hesitate to create an issue or reach me out.
I am always glad to have feedbacks from people using this project.
## Installation
PythonForWindows is available on [Pypi](https://pypi.org/project/PythonForWindows/) an this can be installed with
``
python -m pip install PythonForWindows
``
You can also install PythonForWindows by cloning it and using the ``setup.py`` script:
``
python setup.py install
``
## Encoding & unicode
PythonForWindows support `python2.7` & `python3` and is currently tested for `Python2.7`, `3.6` & `3.11` via [Github Workflow](https://github.com/hakril/PythonForWindows/actions/workflows/mypytest.yml)
Since 1.0.0, the code uses "wide APIs" whenever possible and accept/returns python3 `str` (py2.7 `unicode` type) almost everywhere. Any functions/APIs not accepting unicode string can be considered a bug if its not stated explicitly in the documentation.
### Python2
PythonForWindows continues to support python2.7 as its the only way to have it running on `Windows XP` & `Windows Server 2003` which are sadly still seen in production.
Encoding errors at print time might be awkward for unicode string on python2, see the [PythonForWindows encoding guide](https://hakril.github.io/PythonForWindows/build/html/encoding.html) in the documentation.
## Overview
@@ -35,33 +70,66 @@ You can also make some operation on threads (suspend/resume/wait/get(or set) con
>>> import windows
>>> windows.current_process.bitness
32
>>> calc = [p for p in windows.system.processes if p.name == "calc.exe"][0]
>>> calc
<WinProcess "calc.exe" pid 6960 at 0x37391f0>
>>> calc.bitness
>>> windows.current_process.token.integrity
SECURITY_MANDATORY_MEDIUM_RID(0x2000)
>>> proc = [p for p in windows.system.processes if p.name == "notepad.exe"][0]
>>> proc
<WinProcess "notepad.exe" pid 16520 at 0x544e410>
>>> proc.bitness
64
>>> calc.peb.modules[:3]
[<RemoteLoadedModule64 "calc.exe" at 0x3671e90>, <RemoteLoadedModule64 "ntdll.dll" at 0x3671030>, <RemoteLoadedModule64 "kernel32.dll" at 0x3671080>]
>>> k32 = calc.peb.modules[2]
>>> proc.peb.modules[:3]
[<RemoteLoadedModule64 "notepad.exe" at 0x3671e90>, <RemoteLoadedModule64 "ntdll.dll" at 0x3671030>, <RemoteLoadedModule64 "kernel32.dll" at 0x3671080>]
>>> k32 = proc.peb.modules[2]
>>> hex(k32.pe.exports["CreateFileW"])
'0x7ffee6761550L'
>>> calc.threads[0]
<WinThread 3932 owner "calc.exe" at 0x3646350>
>>> hex(calc.threads[0].context.Rip)
>>> proc.threads[0]
<WinThread 17688 owner "notepad.exe" at 0x53b47f0>
>>> hex(proc.threads[0].context.Rip)
'0x7ffee68b54b0L'
>>> calc.execute_python("import os")
>>> proc.execute_python("import os")
True
>>> calc.execute_python("exit(os.getpid() + 1)")
>>> proc.execute_python("exit(os.getpid() + 1)")
# execute_python raise if process died
Traceback (most recent call last):
...
ValueError: Unknown exit code 0xc000004bL
WindowsError: <WinProcess "notepad.exe" pid 16520 (DEAD) at 0x579f610> died during execution of python command
>>> calc
<WinProcess "calc.exe" pid 6960 (DEAD) at 0x37391f0>
<WinProcess "notepad.exe" pid 16520 (DEAD) at 0x579f610>
>>> calc.exit_code
6961L
16521L
```
### System information
Information about the Windows computer running the script are available through the `windows.system` object.
```python
>>> windows.system
<windows.winobject.system.System object at 0x03FEED10>
>>> windows.system.bitness
64
>>> windows.system.computer_name
'DESKTOP-VKUGISR'
>>> windows.system.product_type
VER_NT_WORKSTATION(0x1)
>>> windows.system.version
(10, 0)
>>> windows.system.version_name
'Windows 10'
>>> windows.system.build_number
'10.0.15063.608'
# windows.system also contains dynamic lists about processes / threads / handles / ...
>>> windows.system.handles[-2:]
[<Handle value=<0x5cc> in process pid=14360>, <Handle value=<0x28e4> in process pid=14360>]
>>> windows.system.processes[:2]
[<WinProcess "[System Process]" pid 0 at 0x433f7d0>, <WinProcess "System" pid 4 at 0x433fd30>]
>>> windows.system.logicaldrives[0]
<LogicalDrive "C:\" (DRIVE_FIXED)>
>>> windows.system.services[23]
<ServiceA "Appinfo" SERVICE_RUNNING(0x4)>
```
### IAT Hook
@@ -72,13 +140,56 @@ So the features is present (See [online documentation][ONLINE_IATHOOK] about IAT
### Winproxy
A wrapper around some Windows functions. Arguments name and order are the same,
but some have default values and the functions raise exception on call error (I don't like 'if' around all my call).
but some have default values and the functions raise exception on call error (I don't like `if` around all my call).
```python
>>> import windows
>>> help(windows.winproxy.VirtualAlloc)
# Help on function VirtualAlloc in module windows.winproxy:
# VirtualAlloc(lpAddress=0, dwSize=NeededParameter, flAllocationType=MEM_COMMIT(0x1000L), flProtect=PAGE_EXECUTE_READWRITE(0x40L))
# Errcheck:
# raise WinproxyError if result is 0
# Positional arguments
>>> windows.winproxy.VirtualAlloc(0, 0x1000)
34537472
# Keyword arguments
>>> windows.winproxy.VirtualAlloc(dwSize=0x1000)
34603008
# NeededParameter must be provided
>>> windows.winproxy.VirtualAlloc()
"""
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "windows\winproxy.py", line 264, in VirtualAlloc
return VirtualAlloc.ctypes_function(lpAddress, dwSize, flAllocationType, flProtect)
File "windows\winproxy.py", line 130, in perform_call
raise TypeError("{0}: Missing Mandatory parameter <{1}>".format(self.func_name, param_name))
TypeError: VirtualAlloc: Missing Mandatory parameter <dwSize>
"""
# Error raises exception
>>> windows.winproxy.VirtualAlloc(dwSize=0xffffffff)
"""
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "windows\winproxy.py", line 264, in VirtualAlloc
return VirtualAlloc.ctypes_function(lpAddress, dwSize, flAllocationType, flProtect)
File "windows\winproxy.py", line 133, in perform_call
return self._cprototyped(*args)
File "windows\winproxy.py", line 59, in kernel32_error_check
raise WinproxyError(func_name)
windows.winproxy.error.WinproxyError: VirtualAlloc: [Error 87] The parameter is incorrect.
"""
```
### Native execution
To make the barrier between `native` and `Python` code,
PythonForWindows allows you to create native function callable from Python (thanks `ctypes`) and also embed
To make the barrier between `native` and `Python` code thinner,
PythonForWindows allows you to create native function callable from Python (thanks to `ctypes`) and also embed
a simple x86/x64 assembler.
```python
@@ -93,6 +204,42 @@ a simple x86/x64 assembler.
>>> f = windows.native_exec.create_function(code.get_code(), [ctypes.c_uint])
>>> f()
42L
# Assemblers can also be used in a more standard way
>>> x86.assemble("cmp edi, 0; jnz :end; mov eax, 1; label :end; ret")
'\x81\xff\x00\x00\x00\x00u\x06\xc7\xc0\x01\x00\x00\x00\xc3'
```
### Token / Security Descriptor
Objects easing access to some information about ``Token`` and ``SecurityDescriptor`` are also available.
```python
>>> import windows.security
>>> import windows.generated_def as gdef
>>> tok = windows.current_process.token
>>> tok
<Token TokenId=0x6a2b4550 Type=TokenPrimary(0x1)>
>>> tok.username
u'hakril'
>>> tok.type
tagTOKEN_TYPE.TokenPrimary(0x1)
>>> tok.integrity
SECURITY_MANDATORY_MEDIUM_RID(0x2000)
>>> tok.duplicate(type=gdef.TokenImpersonation, impersonation_level=gdef.SecurityIdentification)
<Token TokenId=0x6a3532ce Type=TokenImpersonation(0x2) ImpersonationLevel=SecurityIdentification(0x1)>
# Security Descriptor
>>> sd = windows.security.SecurityDescriptor.from_filename("c:\windows\system32\kernel32.dll")
>>> sd
<SecurityDescriptor object at 0x054E3DF0>
>>> windows.utils.lookup_sid(sd.owner)
(u'NT SERVICE', u'TrustedInstaller')
>>> sd.dacl
<Acl count=6>
>>> list(sd.dacl)
[<AccessAllowedACE mask=2032127>, <AccessAllowedACE mask=1179817>, <AccessAllowedACE mask=1179817>, <AccessAllowedACE mask=1179817>, <AccessAllowedACE mask=1179817>, <AccessAllowedACE mask=1179817>]
>>> sd.dacl[1].sid
<PSID "S-1-5-32-544">
```
### Wintrust
@@ -110,7 +257,7 @@ SignatureData(signed=True,
catalog=u'C:\\Windows\\system32\\CatRoot\\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\\Package_35_for_KB3128650~31bf3856ad364e35~amd64~~6.3.1.2.cat',
catalogsigned=True, additionalinfo=0L)
>>> windows.wintrust.full_signature_information(r"C:\Windows\system32\python27.dll")
SignatureData(signed=False, catalog=None, catalogsigned=False, additionalinfo=TRUST_E_NOSIGNATURE(0x800b0100L))
SignatureData(signed=False, catalog=None, catalogsigned=False, additionalinfo=TRUST_E_NOSIGNATURE(0x800b0100))
```
### WMI
@@ -120,25 +267,333 @@ To extract/play with even more information about the system, PythonForWindows is
```python
>>> import windows
>>> windows.system.wmi.select
<bound method WmiRequester.select of <windows.winobject.wmi.WmiRequester object at 0x036BA590>>
>>> windows.system.wmi.select("Win32_Process", ["Name", "Handle"])[:4]
[{'Handle': u'0', 'Name': u'System Idle Process'}, {'Handle': u'4', 'Name': u'System'}, {'Handle': u'412', 'Name': u'smss.exe'}, {'Handle': u'528', 'Name': u'csrss.exe'}]
# Get WMI data for current process
<bound method WmiNamespace.select of <WmiNamespace "root\cimv2">>
>>> windows.system.wmi.select("Win32_Process")[:3]
[<WmiObject instance of "Win32_Process">, <WmiObject instance of "Win32_Process">, <WmiObject instance of "Win32_Process">]# Get WMI data for current process
>>> windows.system.wmi.select("Win32_Process")[42]["Name"]
u'svchost.exe'
>>> wmi_cp = [p for p in windows.system.wmi.select("Win32_Process") if int(p["Handle"]) == windows.current_process.pid][0]
>>> wmi_cp["CommandLine"], wmi_cp["HandleCount"]
(u'"C:\\Python27\\python.exe"', 227)
```
### Registry
The project also contains some wrapping classes around `_winreg` for simpler use.
```python
>>> import windows
>>> from windows.generated_def import KEY_WRITE, KEY_READ, REG_QWORD
>>> registry = windows.system.registry
>>> cuuser_software = registry(r'HKEY_CURRENT_USER\Software')
>>> cuuser_software
<PyHKey "HKEY_CURRENT_USER\Software">
>>> cuuser_software.sam
KEY_READ(0x20019)
# Explore subkeys
>>> cuuser_software.subkeys[:3]
[<PyHKey "HKEY_CURRENT_USER\Software\7-Zip">, <PyHKey "HKEY_CURRENT_USER\Software\AppDataLow">, <PyHKey "HKEY_CURRENT_USER\Software\Audacity">]
>>> tstkey = registry('HKEY_CURRENT_USER\TestKey', KEY_WRITE | KEY_READ)
# Get / Set individual value
>>> tstkey["VALUE"] = 'a_value_for_my_key'
>>> tstkey["VALUE"]
KeyValue(name='VALUE', value=u'a_value_for_my_key', type=1)
>>> tstkey["MYQWORD"] = (123456789987654321, REG_QWORD) # Default is REG_DWORD for int/long
>>> tstkey["MYQWORD"]
KeyValue(name='MYQWORD', value=123456789987654321L, type=11)
# Explore Values
>>> tstkey.values
[KeyValue(name='MYQWORD', value=123456789987654321L, type=11), KeyValue(name='VALUE', value=u'a_value_for_my_key', type=1)]
```
### Object manager
PythonForWindows uses the native Windows NT API to display some information about the object in the Object Manager's name space.
Just like the well-known tools ``winobj.exe``
```python
>>> windows.system.object_manager.root
<KernelObject "\" (type="Directory")>
# The objects of type "Directory" can be acceded just like a dict
>>> list(windows.system.object_manager.root)[:3]
[u'PendingRenameMutex', u'ObjectTypes', u'storqosfltport']
# Find an object by its path
>>> windows.system.object_manager["KnownDLLs\\kernel32.dll"]
<KernelObject "\KnownDLLs\kernel32.dll" (type="Section")>
>>> k32 = windows.system.object_manager["KnownDLLs\\kernel32.dll"]
>>> k32.name, k32.fullname, k32.type
('kernel32.dll', '\\KnownDLLs\\kernel32.dll', u'Section')
# Follow SymbolicLink object
>>> windows.system.object_manager["\\KnownDLLs\\KnownDLLPath"]
<KernelObject "\KnownDLLs\KnownDLLPath" (type="SymbolicLink")>
>>> windows.system.object_manager["\\KnownDLLs\\KnownDLLPath"].target
u'C:\\WINDOWS\\System32'
```
### Scheduled Task
The ``windows.system.task_scheduler`` object allows to query and create scheduled task.
**This part is still in developpement and the API may evolve**
```python
>>> windows.system.task_scheduler
<TaskService at 0x4774670>
>>> windows.system.task_scheduler.root
<TaskFolder "\" at 0x4774710>
>>> task = windows.system.task_scheduler.root.tasks[2]
>>> task
<Task "DemoTask" at 0x47748f0>
>>> task.name
u'DemoTask'
# Explore task actions
>>> task.definition.actions[1]
<ExecAction at 0x4774800>
>>> task.definition.actions[1].path
u'c:\\windows\\python\\python.exe'
>>> task.definition.actions[1].arguments
u'yolo.py --test'
```
### Event logs
The ``windows.system.event_log`` object allows to query event logs.
**This part is still in developpement and the API may evolve**
```python
>>> windows.system.event_log
<windows.winobject.event_log.EvtlogManager object at 0x04A78270>
# Find a channel by its name
>>> chan = windows.system.event_log["Microsoft-Windows-Windows Firewall With Advanced Security/Firewall"]
>>> chan
<EvtChannel "Microsoft-Windows-Windows Firewall With Advanced Security/Firewall">
# Open .evtx files
>>> windows.system.event_log["test.evtx"]
<EvtFile "test.evtx">
# Query a channel for all events
>>> chan.query().all()[:2]
[<EvtEvent id="2004" time="2018-07-12 07:44:08.081504">, <EvtEvent id="2006" time="2018-07-12 07:57:59.806938">]
# Query a channel for some ids
>>> chan.query(ids=2004).all()[:2]
[<EvtEvent id="2004" time="2018-07-12 07:44:08.081504">, <EvtEvent id="2004" time="2018-07-12 07:57:59.815156">]
# Query a channel via XPATH
>>> evt = chan.query("Event/EventData[Data='Netflix']").all()[0]
# Explore event information
>>> evt
<EvtEvent id="2006" time="2018-07-17 10:32:39.160423">
>>> evt.data
{u'ModifyingUser': 69828304, u'RuleName': u'Netflix', u'ModifyingApplication': ...}
```
### ALPC-RPC
#### ALPC
Classes around **A**dvanced **L**ocal **P**rocedure **C**all (**ALPC**) syscalls allows to simply
write client and server able to send **ALPC** messages.
```python
>>> import windows.alpc
# Test server juste reply to each message with "REQUEST '{msg_data}' RECEIVED"
>>> client = windows.alpc.AlpcClient(r"\RPC Control\PythonForWindowsTESTPORT")
>>> response = client.send_receive("Hello world !")
>>> response
<windows.alpc.AlpcMessage object at 0x04C0D5D0>
>>> response.data
"REQUEST 'Hello world !' RECEIVED"
```
Full client/server code for this example is available is the [ALPC samples][ONLINE_SAMPLE_ALPC] along with a more complex example.
#### RPC
An RPC-Client based using **ALPC** communication is also integred
```python
# Server (port ALPC '\RPC Control\HelloRpc') offers:
# Interface '41414141-4242-4343-4444-45464748494a' version 1.0
# Method 1 -> int Add(int a, int b) -> return a + b
# This Test server is a real RPC Server using rpcrt4.dll and compiled with VS2015.
>>> import windows.rpc
>>> from windows.rpc import ndr
>>> client = windows.rpc.RPCClient(r"\RPC Control\HelloRpc")
>>> client
<windows.rpc.client.RPCClient object at 0x0411E130>
>>> iid = client.bind("41414141-4242-4343-4444-45464748494a")
>>> ndr_params = ndr.make_parameters([ndr.NdrLong] * 2)
# NDR pack + Make RPC call to method 1.
>>> resp = client.call(iid, 1, ndr_params.pack([41414141, 1010101]))
# Unpack the NDR response
>>> result = ndr.NdrLong.unpack(ndr.NdrStream(resp))
>>> result
42424242
```
A sample with the **U**ser **A**ccount **C**ontrol (**UAC**) and one with `lsasrv.dll` are available in the [RPC samples][ONLINE_SAMPLE_RPC].
### Debugger
PythonForWindows provides a standard debugger to debug other processes.
```python
import windows
import windows.debug
import windows.test
import windows.native_exec.simple_x86 as x86
import windows.generated_def as gdef
from windows.test import pop_proc_32
class MyDebugger(windows.debug.Debugger):
def on_exception(self, exception):
code = exception.ExceptionRecord.ExceptionCode
addr = exception.ExceptionRecord.ExceptionAddress
print("Got exception {0} at 0x{1:x}".format(code, addr))
if code == gdef.EXCEPTION_ACCESS_VIOLATION:
print("Access Violation: kill target process")
self.current_process.exit()
calc = windows.test.pop_proc_32(dwCreationFlags=gdef.DEBUG_PROCESS)
d = MyDebugger(calc)
calc.execute(x86.assemble("int3; mov [0x42424242], EAX; ret"))
d.loop()
## Ouput ##
Got exception EXCEPTION_BREAKPOINT(0x80000003) at 0x77e13c7d
Got exception EXCEPTION_BREAKPOINT(0x80000003) at 0x230000
Got exception EXCEPTION_ACCESS_VIOLATION(0xc0000005) at 0x230001
Access Violation: kill target process
```
The debugger handles
* Standard breakpoint ``int3``
* Hardware Execution breakpoint ``DrX``
* Memory breakpoint ``virtual protect``
#### LocalDebugger
You can also debug your own process (or debug a process by injection) via the LocalDebugger.
The LocalDebugger is an abstraction around Vectored Exception Handler (VEH)
```python
import windows
from windows.generated_def.winstructs import *
import windows.native_exec.simple_x86 as x86
class SingleSteppingDebugger(windows.debug.LocalDebugger):
SINGLE_STEP_COUNT = 4
def on_exception(self, exc):
code = self.get_exception_code()
context = self.get_exception_context()
print("EXCEPTION !!!! Got a {0} at 0x{1:x}".format(code, context.pc))
self.SINGLE_STEP_COUNT -= 1
if self.SINGLE_STEP_COUNT:
return self.single_step()
return EXCEPTION_CONTINUE_EXECUTION
class RewriteBreakpoint(windows.debug.HXBreakpoint):
def trigger(self, dbg, exc):
context = dbg.get_exception_context()
print("GOT AN HXBP at 0x{0:x}".format(context.pc))
# Rewrite the infinite loop with 2 nop
windows.current_process.write_memory(self.addr, "\x90\x90")
# Ask for a single stepping
return dbg.single_step()
d = SingleSteppingDebugger()
# Infinite loop + nop + ret
code = x86.assemble("label :begin; jmp :begin; nop; ret")
func = windows.native_exec.create_function(code, [PVOID])
print("Code addr = 0x{0:x}".format(func.code_addr))
# Create a thread that will infinite loop
t = windows.current_process.create_thread(func.code_addr, 0)
# Add a breakpoint on the infinite loop
d.add_bp(RewriteBreakpoint(func.code_addr))
t.wait()
print("Done!")
## Output ##
Code addr = 0x6a0002
GOT AN HXBP at 0x6a0002
EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004) at 0x6a0003
EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004) at 0x6a0004
EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004) at 0x6a0005
EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004) at 0x770c7c04
Done!
```
The local debugger handles
* Standard breakpoint ``int3``
* Hardware Execution breakpoint ``DrX``
### Symbols
Classes around the Symbols APIs of `dbghelp.dll` are also implemented and can be used independently of the Debugger.
The path of `dbghelp.dll` can also be given via the `PFW_DBGHELP_PATH` environment variable.
```python
# Python3
>>> from windows.debug import symbols
>>> # symbols.set_dbghelp_path(MY_DBGHELP_PATH)
>>> symbols.engine.options = 0 # Disable defered load
>>> sh = symbols.VirtualSymbolHandler()
>>> ntmod = sh.load_file(r"c:\windows\system32\ntdll.dll", addr=0x420000)
>>> ntmod
<SymbolModule name="ntdll" type=SymPdb pdb="ntdll.pdb" addr=0x420000>
>>> ntmod.name
'ntdll'
>>> ntmod.path
'c:\\windows\\system32\\ntdll.dll'
>>> ntmod.pdb
'c:\\Symbols\\ntdll.pdb\\8D5D5ED5D5B8AA609A82600C14E3004D1\\ntdll.pdb'
>>> sym = sh["ntdll!LdrLoadDll"]
>>> sym
<SymbolInfoW name="LdrLoadDll" start=0x44a160 tag=SymTagFunction>
>>> sym.fullname
'ntdll!LdrLoadDll'
>>> hex(sym.addr)
'0x44a160'
>>> sh.search("ntdll!*CreateFile")
[<SymbolInfoW name="EtwpCreateFile" start=0x47d9ec tag=SymTagFunction>, <SymbolInfoW name="EtwpCreateFile" start=0x47d9ec tag=SymTagPublicSymbol>, <SymbolInfoW name="NtCreateFile" start=0x4c03e0 tag=SymTagPublicSymbol>, <SymbolInfoW name="ZwCreateFile" start=0x4c03e0 tag=SymTagPublicSymbol>, <SymbolInfoW name="__imp_NtCreateFile" start=0x55cb70 tag=SymTagPublicSymbol>]
# Some types exploration
>>> peb = sh.get_type("ntdll!_PEB")
>>> peb
<SymbolType name="_PEB" tag=_SymTagEnum.SymTagUDT(0xb)>
>>> peb.size
2000
>>> peb.children[:3]
[<SymbolType name="InheritedAddressSpace" tag=_SymTagEnum.SymTagData(0x7)>, <SymbolType name="ReadImageFileExecOptions" tag=_SymTagEnum.SymTagData(0x7)>, <SymbolType name="BeingDebugged" tag=_SymTagEnum.SymTagData(0x7)>]
>>> peb.children[2].offset
2
```
### Other stuff (see doc / samples)
- Registry
- Network
- Services
- COM
## Acknowledgments
* clmntb for his initial work on ``windows.security``
[LKD_GITHUB]: https://github.com/sogeti-esec-lab/LKD/
[SAMPLE_DIR]: https://github.com/hakril/PythonForWindows/tree/master/samples
[ONLINE_DOC]: http://hakril.github.io/PythonForWindows/
[ONLINE_SAMPLE]: http://hakril.github.io/PythonForWindows/sample.html
[ONLINE_IATHOOK]: http://hakril.github.io/PythonForWindows/iat_hook.html
[ONLINE_DOC]: https://hakril.github.io/PythonForWindows/
[ONLINE_SAMPLE]: https://hakril.github.io/PythonForWindows/build/html/sample.html
[ONLINE_SAMPLE_ALPC]: https://hakril.github.io/PythonForWindows/build/html/sample.html#windows-alpc
[ONLINE_SAMPLE_RPC]: https://hakril.github.io/PythonForWindows/build/html/sample.html#windows-rpc
[ONLINE_IATHOOK]: https://hakril.github.io/PythonForWindows/build/html/iat_hook.html
+52 -38
View File
@@ -1,55 +1,69 @@
TODO:
- Documentation
- Pass 0.2 when doc is done <3
- ProcessMemory object ? (metasm like)
-- CRITICAL BEFORE 0.6 ? --
- Document / fix / release:
- windows.bits
- window
- Ndr:
- Handle les struct conformant imbriquees
- Handle le packing de struct specifique
======
- remove pe_parse.transform_ctypes_fields (use utils.transform_ctypes_fields)
- DBG
- FIX BP API !!
- add_bp(target=XXX) vs del_bp(targets=XXX) ....
- Verif multiple bp at same place..
- Verif multiple pending at same place
- Test !! (bp, BP_HX, bp on only on process, bp_hx on only one thread..)
- test breakpoint with specific target
- Threading
- Quid IAT hook stub ? just einit threads and remove this ?
- Injection
- code generated by generate_python_exec_shellcode_64[32] may be reused
Just need to pass the address of the python string as argument
- rewrite generate_stub_64[32] : it's a non-sens to not save stuff on the stack..
I can re-copy the args on stack..
- Winproxy:
- rethink OptionalExport ? not useful with lazy resolution (or we need to force resolution..)
- Readme
- Debugger ? Veh ?
- TransparentApiProxy
double name (params and args) for same info..
- 32 <-> 64
* What about ``NtWow64QueryVirtualMemory64`` ?
- Parse .IDL file for more COM NAME->IID
- Add test for debugger with breakpoint that add another breakpoint on trigger
- NtQueryVirtualMemory_32_to_64 (stop using hardcoded value for request type: add it to enum)
- Rethink/adapt Debugger._explicit_single_step
- Does not handle case where EEFlags.TF was by the debugge before trigering the exception
- Should set the flag explicitly in single_step ? and not just use EEFlags.TF ?
- _handle_load_dll
- error in keys of 'self._module_by_process[self.current_process.pid]'
- if I have a ntdll32 and ntdll64: both would have the same name in the list..
CHANGELOG:
* re-check every sample
- Il y a un truc fucked-up avec le add_bp(target=XXX)
- j'attends a avoir un thread/process mais je fait des check sur TID/PID..
- Ecrire un test et fix..
- remotectypes
- pretty sur I can get rid of PointerToStruct64/PointerToStruct32
- winutils
- some stuff in winutils.py are not documented.
- Fix/test/refactor API + doc
- winobject\exception.py
- large part could be rewritten with ctypes-generation extended-def
- add winobject/window.py
- Some test/doc
- wintrust doc:
add : https://blogs.msdn.microsoft.com/winsdk/2016/01/05/why-cryptcatadmincalchashfromfilehandle-fails-with-a-seemingly-unexpected-error-code/
- COM:
- test https://msdn.microsoft.com/en-us/library/vs/alm/hh846255(v=vs.85).aspx
- Hook
- Probleme with enabled hook + gc
- Prevent GC of enabled hook ?
- Raise on deletion of enabled hook ?
- if I implem __del__ -> we have a __del__ cycle -> no gc (gc.garbage instead..)
Documentation
* verif samples
FIXME:
- setup.py build seems to raise an error
- winutils.create_process : use WinProcess._from_handle
- Push("[ECX]") in simple_x64 as a "H" rex and i think it should not..
* windows.bits
- Document change in CurrentProcess read/write memory behavior ?
RESSOURCE
* read http://www.codeproject.com/Articles/18975/Listing-Used-Files
+50 -59
View File
@@ -1,4 +1,3 @@
import StringIO
from collections import namedtuple
import dummy_wintypes
@@ -7,60 +6,19 @@ from winstruct import WinStruct, WinUnion, WinStructType, Ptr, WinEnum
from simpleparser import *
def initial_processing( data):
# https://gcc.gnu.org/onlinedocs/cpp/Initial-processing.html#Initial-processing
# Step 1 -> use correct end of line + add last \n if not existing
data = data.replace("\r\n", "\n")
if not data.endswith("\n"):
data = data + "\n"
# Step 2: Trigraph : fuck it
pass
# Step 3: Line merge !
data = data.replace("\\\n", "")
# Step 4 Remove comments:
ins = StringIO.StringIO(data)
outs = StringIO.StringIO()
in_str = False
res = []
while ins.tell() != len(data):
c = ins.read(1)
if ins.tell() == len(data):
outs.write(c)
break
if not in_str and c == "/":
nc = ins.read(1)
if nc == "/":
while c != "\n":
c = ins.read(1)
outs.write(c)
continue
elif nc == "*":
while c != "*" or nc != "/":
c = nc
nc = ins.read(1)
if not nc:
raise ValueError("Unmatched */")
outs.write(" ")
continue
else:
outs.write(c)
ins.seek(ins.tell() - 1)
continue
# TODO: escape in str
elif c == '"':
in_str = not in_str
outs.write(c)
outs.seek(0)
return outs.read()
class WinComParser(Parser):
PARAM_INFO = ["__RPC__deref_out", "__RPC__in", "__RPC__deref_out_opt", "__RPC__out", "__RPC__in_opt", "__RPC__deref_opt_inout_opt"]
PARAM_INFO_WITH_VALUE = ["__RPC__in_ecount", "__RPC__out_ecount_part", "__RPC__in_ecount_full", "__RPC__in_range", "__RPC__out_ecount_full"]
PARAM_INFO = ["__RPC__deref_out", "__RPC__in", "__RPC__deref_out_opt", "__RPC__out", "__RPC__in_opt",
"__RPC__deref_opt_inout_opt", "__in", "__out", "__out_opt", "__in_opt", "__inout",
"__reserved", "__RPC__in_opt_string", "__RPC__inout_opt", "__RPC__in_string", "__deref_out_opt", "__RPC__inout",
"__RPC__deref_out_opt_string", "_COM_Outptr_", "_In_", "_In_opt_", "_Out_", "__deref_out"]
PARAM_INFO_WITH_VALUE = ["__RPC__in_ecount", "__RPC__out_ecount_part", "__RPC__in_ecount_full",
"__RPC__in_range", "__RPC__out_ecount_full", "__out_ecount_opt", "__out_ecount", "__in_ecount_opt",
"__in_ecount", "__out_bcount_opt", "__out_bcount", "__in_bcount", "__in_bcount_opt", "__RPC__out_ecount_full_string",
"__RPC__deref_out_ecount_full_opt", "__out_ecount_part", "__deref_out_range", "__out_bcount_part",
"_Outptr_result_buffer_"]
def __init__(self, data):
data = initial_processing(data)
# data = self.initial_processing(data)
#print(data)
super(WinComParser, self).__init__(data)
@@ -79,12 +37,18 @@ class WinComParser(Parser):
if ign.value in self.PARAM_INFO_WITH_VALUE:
# pass __RPC__in_ecount(cNames)
self.assert_token_type(OpenParenthesisToken)
while type(self.peek()) != CloseParenthesisToken:
self.next_token()
self.next_token()
depth = 1
while depth:
ntok = self.next_token()
if type(ntok) == CloseParenthesisToken:
depth -= 1
elif type(ntok) == OpenParenthesisToken:
depth +=1
if self.peek() == KeywordToken("const"):
self.next_token()
type_name = self.assert_token_type(NameToken)
if type_name.value.startswith("_"):
print("type_name = <{0}> might be a PARAM_INFO".format(type_name.value))
while type(self.peek()) == StarToken:
byreflevel += 1
@@ -104,18 +68,32 @@ class WinComParser(Parser):
#if type(self.peek()) == StarToken:
self.assert_token_type(StarToken)
method_name = self.assert_token_type(NameToken)
#print("Parsing method <{0}>".format(method_name))
self.assert_token_type(CloseParenthesisToken)
args = []
self.assert_token_type(OpenParenthesisToken)
while type(self.peek()) != CloseParenthesisToken:
if self.peek().value == "...": #TODO: '...' token ?
self.next_token()
# '...' should be last token before ')'
args.append("...") # Put a type ?
assert type(self.peek()) == CloseParenthesisToken
continue
args.append(self.parse_argument())
#print("Pass <{0}>".format(p))
self.next_token()
self.assert_token_type(ColonToken)
self.assert_token_type(SemiColonToken)
return ret_type.value, method_name.value, args
def parse(self):
tok = self.peek()
if type(tok) == NameToken and tok.value == "@IID:":
self.next_token()
iid = self.assert_token_type(NameToken).value
else:
iid = None
self.assert_keyword("typedef")
self.assert_keyword("struct")
@@ -124,6 +102,7 @@ class WinComParser(Parser):
self.assert_name("BEGIN_INTERFACE")
res = WinCOMVTABLE(vtable_name)
res.iid = iid
while self.peek() != NameToken("END_INTERFACE"):
ret_type, method_name, args = self.parse_method()
@@ -135,12 +114,19 @@ class WinComParser(Parser):
end_interface = self.assert_name("END_INTERFACE")
self.assert_token_type(CloseBracketToken)
typdef = self.assert_token_type(NameToken)
self.assert_token_type(ColonToken)
# Do a real thing able to see multiple typedef..
typedefptr = None
if type(self.peek()) == CommaToken:
self.next_token()
self.assert_token_type(StarToken)
typedefptr = self.assert_token_type(NameToken).value
self.assert_token_type(SemiColonToken)
res.typedefptr = typedefptr
return res
#print(self.data)
Method = namedtuple("Method", ["ret_type", "name", "args"])
Method = namedtuple("Method", ["ret_type", "name", "args", 'functype'])
MethodArg = namedtuple("MethodArg", ["type", "byreflevel", "name"])
class WinCOMVTABLE(object):
def __init__(self, vtbl_name):
@@ -152,6 +138,11 @@ class WinCOMVTABLE(object):
def add_method(self, ret_type, method_name, args):
new_args = []
functype = 'stdcall'
if args[-1] == "...":
print("{0}.{1} is a cdecl COM method".format(self.name, method_name))
args = args[:-1]
functype = 'cdecl'
for type, byreflevel, name in args:
if type in ["long", "int"]:
type = type.upper()
@@ -159,7 +150,7 @@ class WinCOMVTABLE(object):
if ret_type in ["long", "int"]:
ret_type = ret_type.upper()
self.methods.append(Method(ret_type, method_name, new_args))
self.methods.append(Method(ret_type, method_name, new_args, functype))
if __name__ == "__main__":
+23 -5
View File
@@ -7,12 +7,13 @@ class WinDef(object):
def __init__(self, name, code):
self.name = name
self.code = code
def generate_ctypes(self):
return """{0} = Flag("{0}", {1})""".format(self.name, self.code)
if self.code[-1] == "L" and self.code[0].isdigit():
self.code = self.code[:-1]
return """{0} = make_flag("{0}", {1})""".format(self.name, self.code)
class WinDefParser(Parser):
def parse_define(self):
self.assert_token_type(SharpToken)
define = self.assert_token_type(NameToken)
@@ -26,9 +27,26 @@ class WinDefParser(Parser):
v = v[:-1]
define_value.append(v)
return WinDef(define_name.value, " ".join(define_value))
def parse(self):
res = []
while self.peek() is not None:
res.append(self.parse_define())
return res
return res
# A simple Fake parser for NTSTATUS
class NtStatusParser(object):
def __init__(self, data):
self.input = data
def parse(self):
nt_status_defs = []
for line in self.input.split("\n"):
if not line:
continue
code, name, descr = line.split("|", 2)
code = int(code, 0)
descr = re.sub(" +", " ", descr[:-1]) # remove \n
descr = descr.replace('"', "'")
nt_status_defs.append((code, name, descr))
return nt_status_defs
@@ -0,0 +1,32 @@
typedef struct IBackgroundCopyCallbackVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyCallback * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyCallback * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyCallback * This);
HRESULT ( STDMETHODCALLTYPE *JobTransferred )(
__RPC__in IBackgroundCopyCallback * This,
/* [in] */ __RPC__in_opt IBackgroundCopyJob *pJob);
HRESULT ( STDMETHODCALLTYPE *JobError )(
__RPC__in IBackgroundCopyCallback * This,
/* [in] */ __RPC__in_opt IBackgroundCopyJob *pJob,
/* [in] */ __RPC__in_opt IBackgroundCopyError *pError);
HRESULT ( STDMETHODCALLTYPE *JobModification )(
__RPC__in IBackgroundCopyCallback * This,
/* [in] */ __RPC__in_opt IBackgroundCopyJob *pJob,
/* [in] */ DWORD dwReserved);
END_INTERFACE
} IBackgroundCopyCallbackVtbl;
@@ -0,0 +1,41 @@
typedef struct IBackgroundCopyErrorVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyError * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyError * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyError * This);
HRESULT ( STDMETHODCALLTYPE *GetError )(
__RPC__in IBackgroundCopyError * This,
/* [ref][out] */ __RPC__out BG_ERROR_CONTEXT *pContext,
/* [ref][out] */ __RPC__out HRESULT *pCode);
HRESULT ( STDMETHODCALLTYPE *GetFile )(
__RPC__in IBackgroundCopyError * This,
/* [out] */ __RPC__deref_out_opt IBackgroundCopyFile **pVal);
HRESULT ( STDMETHODCALLTYPE *GetErrorDescription )(
__RPC__in IBackgroundCopyError * This,
/* [in] */ DWORD LanguageId,
/* [ref][out] */ __RPC__deref_out_opt LPWSTR *pErrorDescription);
HRESULT ( STDMETHODCALLTYPE *GetErrorContextDescription )(
__RPC__in IBackgroundCopyError * This,
/* [in] */ DWORD LanguageId,
/* [ref][out] */ __RPC__deref_out_opt LPWSTR *pContextDescription);
HRESULT ( STDMETHODCALLTYPE *GetProtocol )(
__RPC__in IBackgroundCopyError * This,
/* [ref][out] */ __RPC__deref_out_opt LPWSTR *pProtocol);
END_INTERFACE
} IBackgroundCopyErrorVtbl;
@@ -0,0 +1,30 @@
typedef struct IBackgroundCopyFileVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyFile * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyFile * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyFile * This);
HRESULT ( STDMETHODCALLTYPE *GetRemoteName )(
__RPC__in IBackgroundCopyFile * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *GetLocalName )(
__RPC__in IBackgroundCopyFile * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *GetProgress )(
__RPC__in IBackgroundCopyFile * This,
/* [out] */ __RPC__out BG_FILE_PROGRESS *pVal);
END_INTERFACE
} IBackgroundCopyFileVtbl;
@@ -0,0 +1,39 @@
typedef struct IBackgroundCopyFile2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyFile2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyFile2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyFile2 * This);
HRESULT ( STDMETHODCALLTYPE *GetRemoteName )(
__RPC__in IBackgroundCopyFile2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *GetLocalName )(
__RPC__in IBackgroundCopyFile2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *GetProgress )(
__RPC__in IBackgroundCopyFile2 * This,
/* [out] */ __RPC__out BG_FILE_PROGRESS *pVal);
HRESULT ( STDMETHODCALLTYPE *GetFileRanges )(
__RPC__in IBackgroundCopyFile2 * This,
/* [unique][out][in] */ __RPC__inout_opt DWORD *RangeCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*RangeCount) BG_FILE_RANGE **Ranges);
HRESULT ( STDMETHODCALLTYPE *SetRemoteName )(
__RPC__in IBackgroundCopyFile2 * This,
__RPC__in LPCWSTR Val);
END_INTERFACE
} IBackgroundCopyFile2Vtbl;
@@ -0,0 +1,55 @@
typedef struct IBackgroundCopyFile3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyFile3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyFile3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyFile3 * This);
HRESULT ( STDMETHODCALLTYPE *GetRemoteName )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *GetLocalName )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *GetProgress )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__out BG_FILE_PROGRESS *pVal);
HRESULT ( STDMETHODCALLTYPE *GetFileRanges )(
__RPC__in IBackgroundCopyFile3 * This,
/* [unique][out][in] */ __RPC__inout_opt DWORD *RangeCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*RangeCount) BG_FILE_RANGE **Ranges);
HRESULT ( STDMETHODCALLTYPE *SetRemoteName )(
__RPC__in IBackgroundCopyFile3 * This,
__RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetTemporaryName )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pFilename);
HRESULT ( STDMETHODCALLTYPE *SetValidationState )(
__RPC__in IBackgroundCopyFile3 * This,
/* [in] */ BOOL state);
HRESULT ( STDMETHODCALLTYPE *GetValidationState )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__out BOOL *pState);
HRESULT ( STDMETHODCALLTYPE *IsDownloadedFromPeer )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__out BOOL *pVal);
END_INTERFACE
} IBackgroundCopyFile3Vtbl;
@@ -0,0 +1,147 @@
typedef struct IBackgroundCopyJobVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyJob * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyJob * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyJob * This);
HRESULT ( STDMETHODCALLTYPE *AddFileSet )(
__RPC__in IBackgroundCopyJob * This,
/* [in] */ ULONG cFileCount,
/* [size_is][in] */ __RPC__in_ecount_full(cFileCount) BG_FILE_INFO *pFileSet);
HRESULT ( STDMETHODCALLTYPE *AddFile )(
__RPC__in IBackgroundCopyJob * This,
/* [in] */ __RPC__in LPCWSTR RemoteUrl,
/* [in] */ __RPC__in LPCWSTR LocalName);
HRESULT ( STDMETHODCALLTYPE *EnumFiles )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__deref_out_opt IEnumBackgroundCopyFiles **pEnum);
HRESULT ( STDMETHODCALLTYPE *Suspend )(
__RPC__in IBackgroundCopyJob * This);
HRESULT ( STDMETHODCALLTYPE *Resume )(
__RPC__in IBackgroundCopyJob * This);
HRESULT ( STDMETHODCALLTYPE *Cancel )(
__RPC__in IBackgroundCopyJob * This);
HRESULT ( STDMETHODCALLTYPE *Complete )(
__RPC__in IBackgroundCopyJob * This);
HRESULT ( STDMETHODCALLTYPE *GetId )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__out GUID *pVal);
HRESULT ( STDMETHODCALLTYPE *GetType )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__out BG_JOB_TYPE *pVal);
HRESULT ( STDMETHODCALLTYPE *GetProgress )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__out BG_JOB_PROGRESS *pVal);
HRESULT ( STDMETHODCALLTYPE *GetTimes )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__out BG_JOB_TIMES *pVal);
HRESULT ( STDMETHODCALLTYPE *GetState )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__out BG_JOB_STATE *pVal);
HRESULT ( STDMETHODCALLTYPE *GetError )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__deref_out_opt IBackgroundCopyError **ppError);
HRESULT ( STDMETHODCALLTYPE *GetOwner )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetDisplayName )(
__RPC__in IBackgroundCopyJob * This,
/* [in] */ __RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetDescription )(
__RPC__in IBackgroundCopyJob * This,
/* [in] */ __RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetDescription )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetPriority )(
__RPC__in IBackgroundCopyJob * This,
/* [in] */ BG_JOB_PRIORITY Val);
HRESULT ( STDMETHODCALLTYPE *GetPriority )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__out BG_JOB_PRIORITY *pVal);
HRESULT ( STDMETHODCALLTYPE *SetNotifyFlags )(
__RPC__in IBackgroundCopyJob * This,
/* [in] */ ULONG Val);
HRESULT ( STDMETHODCALLTYPE *GetNotifyFlags )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__out ULONG *pVal);
HRESULT ( STDMETHODCALLTYPE *SetNotifyInterface )(
__RPC__in IBackgroundCopyJob * This,
/* [in] */ __RPC__in_opt IUnknown *Val);
HRESULT ( STDMETHODCALLTYPE *GetNotifyInterface )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__deref_out_opt IUnknown **pVal);
HRESULT ( STDMETHODCALLTYPE *SetMinimumRetryDelay )(
__RPC__in IBackgroundCopyJob * This,
/* [in] */ ULONG Seconds);
HRESULT ( STDMETHODCALLTYPE *GetMinimumRetryDelay )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__out ULONG *Seconds);
HRESULT ( STDMETHODCALLTYPE *SetNoProgressTimeout )(
__RPC__in IBackgroundCopyJob * This,
/* [in] */ ULONG Seconds);
HRESULT ( STDMETHODCALLTYPE *GetNoProgressTimeout )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__out ULONG *Seconds);
HRESULT ( STDMETHODCALLTYPE *GetErrorCount )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__out ULONG *Errors);
HRESULT ( STDMETHODCALLTYPE *SetProxySettings )(
__RPC__in IBackgroundCopyJob * This,
/* [in] */ BG_JOB_PROXY_USAGE ProxyUsage,
/* [unique][string][in] */ __RPC__in_opt_string const WCHAR *ProxyList,
/* [unique][string][in] */ __RPC__in_opt_string const WCHAR *ProxyBypassList);
HRESULT ( STDMETHODCALLTYPE *GetProxySettings )(
__RPC__in IBackgroundCopyJob * This,
/* [out] */ __RPC__out BG_JOB_PROXY_USAGE *pProxyUsage,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProxyList,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProxyBypassList);
HRESULT ( STDMETHODCALLTYPE *TakeOwnership )(
__RPC__in IBackgroundCopyJob * This);
END_INTERFACE
} IBackgroundCopyJobVtbl;
@@ -0,0 +1,183 @@
typedef struct IBackgroundCopyJob2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyJob2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *AddFileSet )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ ULONG cFileCount,
/* [size_is][in] */ __RPC__in_ecount_full(cFileCount) BG_FILE_INFO *pFileSet);
HRESULT ( STDMETHODCALLTYPE *AddFile )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ __RPC__in LPCWSTR RemoteUrl,
/* [in] */ __RPC__in LPCWSTR LocalName);
HRESULT ( STDMETHODCALLTYPE *EnumFiles )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt IEnumBackgroundCopyFiles **pEnum);
HRESULT ( STDMETHODCALLTYPE *Suspend )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *Resume )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *Cancel )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *Complete )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *GetId )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out GUID *pVal);
HRESULT ( STDMETHODCALLTYPE *GetType )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_TYPE *pVal);
HRESULT ( STDMETHODCALLTYPE *GetProgress )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_PROGRESS *pVal);
HRESULT ( STDMETHODCALLTYPE *GetTimes )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_TIMES *pVal);
HRESULT ( STDMETHODCALLTYPE *GetState )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_STATE *pVal);
HRESULT ( STDMETHODCALLTYPE *GetError )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt IBackgroundCopyError **ppError);
HRESULT ( STDMETHODCALLTYPE *GetOwner )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetDisplayName )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ __RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetDescription )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ __RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetDescription )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetPriority )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ BG_JOB_PRIORITY Val);
HRESULT ( STDMETHODCALLTYPE *GetPriority )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_PRIORITY *pVal);
HRESULT ( STDMETHODCALLTYPE *SetNotifyFlags )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ ULONG Val);
HRESULT ( STDMETHODCALLTYPE *GetNotifyFlags )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out ULONG *pVal);
HRESULT ( STDMETHODCALLTYPE *SetNotifyInterface )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ __RPC__in_opt IUnknown *Val);
HRESULT ( STDMETHODCALLTYPE *GetNotifyInterface )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt IUnknown **pVal);
HRESULT ( STDMETHODCALLTYPE *SetMinimumRetryDelay )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ ULONG Seconds);
HRESULT ( STDMETHODCALLTYPE *GetMinimumRetryDelay )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out ULONG *Seconds);
HRESULT ( STDMETHODCALLTYPE *SetNoProgressTimeout )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ ULONG Seconds);
HRESULT ( STDMETHODCALLTYPE *GetNoProgressTimeout )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out ULONG *Seconds);
HRESULT ( STDMETHODCALLTYPE *GetErrorCount )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out ULONG *Errors);
HRESULT ( STDMETHODCALLTYPE *SetProxySettings )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ BG_JOB_PROXY_USAGE ProxyUsage,
/* [unique][string][in] */ __RPC__in_opt_string const WCHAR *ProxyList,
/* [unique][string][in] */ __RPC__in_opt_string const WCHAR *ProxyBypassList);
HRESULT ( STDMETHODCALLTYPE *GetProxySettings )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_PROXY_USAGE *pProxyUsage,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProxyList,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProxyBypassList);
HRESULT ( STDMETHODCALLTYPE *TakeOwnership )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *SetNotifyCmdLine )(
__RPC__in IBackgroundCopyJob2 * This,
/* [unique][in] */ __RPC__in_opt LPCWSTR Program,
/* [unique][in] */ __RPC__in_opt LPCWSTR Parameters);
HRESULT ( STDMETHODCALLTYPE *GetNotifyCmdLine )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProgram,
/* [out] */ __RPC__deref_out_opt LPWSTR *pParameters);
HRESULT ( STDMETHODCALLTYPE *GetReplyProgress )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out][in] */ __RPC__inout BG_JOB_REPLY_PROGRESS *pProgress);
HRESULT ( STDMETHODCALLTYPE *GetReplyData )(
__RPC__in IBackgroundCopyJob2 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(( unsigned long )*pLength) BYTE **ppBuffer,
/* [unique][out][in] */ __RPC__inout_opt UINT64 *pLength);
HRESULT ( STDMETHODCALLTYPE *SetReplyFileName )(
__RPC__in IBackgroundCopyJob2 * This,
/* [unique][in] */ __RPC__in_opt LPCWSTR ReplyFileName);
HRESULT ( STDMETHODCALLTYPE *GetReplyFileName )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pReplyFileName);
HRESULT ( STDMETHODCALLTYPE *SetCredentials )(
__RPC__in IBackgroundCopyJob2 * This,
__RPC__in BG_AUTH_CREDENTIALS *credentials);
HRESULT ( STDMETHODCALLTYPE *RemoveCredentials )(
__RPC__in IBackgroundCopyJob2 * This,
BG_AUTH_TARGET Target,
BG_AUTH_SCHEME Scheme);
END_INTERFACE
} IBackgroundCopyJob2Vtbl;
@@ -0,0 +1,203 @@
typedef struct IBackgroundCopyJob3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyJob3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *AddFileSet )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ ULONG cFileCount,
/* [size_is][in] */ __RPC__in_ecount_full(cFileCount) BG_FILE_INFO *pFileSet);
HRESULT ( STDMETHODCALLTYPE *AddFile )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in LPCWSTR RemoteUrl,
/* [in] */ __RPC__in LPCWSTR LocalName);
HRESULT ( STDMETHODCALLTYPE *EnumFiles )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt IEnumBackgroundCopyFiles **pEnum);
HRESULT ( STDMETHODCALLTYPE *Suspend )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *Resume )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *Cancel )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *Complete )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *GetId )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out GUID *pVal);
HRESULT ( STDMETHODCALLTYPE *GetType )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_TYPE *pVal);
HRESULT ( STDMETHODCALLTYPE *GetProgress )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_PROGRESS *pVal);
HRESULT ( STDMETHODCALLTYPE *GetTimes )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_TIMES *pVal);
HRESULT ( STDMETHODCALLTYPE *GetState )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_STATE *pVal);
HRESULT ( STDMETHODCALLTYPE *GetError )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt IBackgroundCopyError **ppError);
HRESULT ( STDMETHODCALLTYPE *GetOwner )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetDisplayName )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetDescription )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetDescription )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetPriority )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ BG_JOB_PRIORITY Val);
HRESULT ( STDMETHODCALLTYPE *GetPriority )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_PRIORITY *pVal);
HRESULT ( STDMETHODCALLTYPE *SetNotifyFlags )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ ULONG Val);
HRESULT ( STDMETHODCALLTYPE *GetNotifyFlags )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out ULONG *pVal);
HRESULT ( STDMETHODCALLTYPE *SetNotifyInterface )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in_opt IUnknown *Val);
HRESULT ( STDMETHODCALLTYPE *GetNotifyInterface )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt IUnknown **pVal);
HRESULT ( STDMETHODCALLTYPE *SetMinimumRetryDelay )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ ULONG Seconds);
HRESULT ( STDMETHODCALLTYPE *GetMinimumRetryDelay )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out ULONG *Seconds);
HRESULT ( STDMETHODCALLTYPE *SetNoProgressTimeout )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ ULONG Seconds);
HRESULT ( STDMETHODCALLTYPE *GetNoProgressTimeout )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out ULONG *Seconds);
HRESULT ( STDMETHODCALLTYPE *GetErrorCount )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out ULONG *Errors);
HRESULT ( STDMETHODCALLTYPE *SetProxySettings )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ BG_JOB_PROXY_USAGE ProxyUsage,
/* [unique][string][in] */ __RPC__in_opt_string const WCHAR *ProxyList,
/* [unique][string][in] */ __RPC__in_opt_string const WCHAR *ProxyBypassList);
HRESULT ( STDMETHODCALLTYPE *GetProxySettings )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_PROXY_USAGE *pProxyUsage,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProxyList,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProxyBypassList);
HRESULT ( STDMETHODCALLTYPE *TakeOwnership )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *SetNotifyCmdLine )(
__RPC__in IBackgroundCopyJob3 * This,
/* [unique][in] */ __RPC__in_opt LPCWSTR Program,
/* [unique][in] */ __RPC__in_opt LPCWSTR Parameters);
HRESULT ( STDMETHODCALLTYPE *GetNotifyCmdLine )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProgram,
/* [out] */ __RPC__deref_out_opt LPWSTR *pParameters);
HRESULT ( STDMETHODCALLTYPE *GetReplyProgress )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out][in] */ __RPC__inout BG_JOB_REPLY_PROGRESS *pProgress);
HRESULT ( STDMETHODCALLTYPE *GetReplyData )(
__RPC__in IBackgroundCopyJob3 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(( unsigned long )*pLength) byte **ppBuffer,
/* [unique][out][in] */ __RPC__inout_opt UINT64 *pLength);
HRESULT ( STDMETHODCALLTYPE *SetReplyFileName )(
__RPC__in IBackgroundCopyJob3 * This,
/* [unique][in] */ __RPC__in_opt LPCWSTR ReplyFileName);
HRESULT ( STDMETHODCALLTYPE *GetReplyFileName )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pReplyFileName);
HRESULT ( STDMETHODCALLTYPE *SetCredentials )(
__RPC__in IBackgroundCopyJob3 * This,
__RPC__in BG_AUTH_CREDENTIALS *credentials);
HRESULT ( STDMETHODCALLTYPE *RemoveCredentials )(
__RPC__in IBackgroundCopyJob3 * This,
BG_AUTH_TARGET Target,
BG_AUTH_SCHEME Scheme);
HRESULT ( STDMETHODCALLTYPE *ReplaceRemotePrefix )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in LPCWSTR OldPrefix,
/* [in] */ __RPC__in LPCWSTR NewPrefix);
HRESULT ( STDMETHODCALLTYPE *AddFileWithRanges )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in LPCWSTR RemoteUrl,
/* [in] */ __RPC__in LPCWSTR LocalName,
/* [in] */ DWORD RangeCount,
/* [size_is][in] */ __RPC__in_ecount_full(RangeCount) BG_FILE_RANGE *Ranges);
HRESULT ( STDMETHODCALLTYPE *SetFileACLFlags )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ DWORD Flags);
HRESULT ( STDMETHODCALLTYPE *GetFileACLFlags )(
__RPC__in IBackgroundCopyJob3 * This,
/* [ref][out] */ __RPC__out DWORD *Flags);
END_INTERFACE
} IBackgroundCopyJob3Vtbl;
@@ -0,0 +1,41 @@
typedef struct IBackgroundCopyManagerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyManager * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyManager * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyManager * This);
HRESULT ( STDMETHODCALLTYPE *CreateJob )(
__RPC__in IBackgroundCopyManager * This,
/* [in] */ __RPC__in LPCWSTR DisplayName,
/* [in] */ BG_JOB_TYPE Type,
/* [out] */ __RPC__out GUID *pJobId,
/* [out] */ __RPC__deref_out_opt IBackgroundCopyJob **ppJob);
HRESULT ( STDMETHODCALLTYPE *GetJob )(
__RPC__in IBackgroundCopyManager * This,
/* [in] */ __RPC__in REFGUID jobID,
/* [out] */ __RPC__deref_out_opt IBackgroundCopyJob **ppJob);
HRESULT ( STDMETHODCALLTYPE *EnumJobs )(
__RPC__in IBackgroundCopyManager * This,
/* [in] */ DWORD dwFlags,
/* [out] */ __RPC__deref_out_opt IEnumBackgroundCopyJobs **ppEnum);
HRESULT ( STDMETHODCALLTYPE *GetErrorDescription )(
__RPC__in IBackgroundCopyManager * This,
/* [in] */ HRESULT hResult,
/* [in] */ DWORD LanguageId,
/* [out] */ __RPC__deref_out_opt LPWSTR *pErrorDescription);
END_INTERFACE
} IBackgroundCopyManagerVtbl;
@@ -0,0 +1,39 @@
typedef struct IEnumBackgroundCopyFilesVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IEnumBackgroundCopyFiles * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IEnumBackgroundCopyFiles * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IEnumBackgroundCopyFiles * This);
HRESULT ( STDMETHODCALLTYPE *Next )(
__RPC__in IEnumBackgroundCopyFiles * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, pceltFetched ? *pceltFetched : celt) IBackgroundCopyFile **rgelt,
/* [unique][out][in] */ __RPC__inout_opt ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
__RPC__in IEnumBackgroundCopyFiles * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
__RPC__in IEnumBackgroundCopyFiles * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IEnumBackgroundCopyFiles * This,
/* [out] */ __RPC__deref_out_opt IEnumBackgroundCopyFiles **ppenum);
HRESULT ( STDMETHODCALLTYPE *GetCount )(
__RPC__in IEnumBackgroundCopyFiles * This,
/* [out] */ __RPC__out ULONG *puCount);
END_INTERFACE
} IEnumBackgroundCopyFilesVtbl;
@@ -0,0 +1,39 @@
typedef struct IEnumBackgroundCopyJobsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IEnumBackgroundCopyJobs * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IEnumBackgroundCopyJobs * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IEnumBackgroundCopyJobs * This);
HRESULT ( STDMETHODCALLTYPE *Next )(
__RPC__in IEnumBackgroundCopyJobs * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, pceltFetched ? *pceltFetched : celt) IBackgroundCopyJob **rgelt,
/* [unique][out][in] */ __RPC__inout_opt ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
__RPC__in IEnumBackgroundCopyJobs * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
__RPC__in IEnumBackgroundCopyJobs * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IEnumBackgroundCopyJobs * This,
/* [out] */ __RPC__deref_out_opt IEnumBackgroundCopyJobs **ppenum);
HRESULT ( STDMETHODCALLTYPE *GetCount )(
__RPC__in IEnumBackgroundCopyJobs * This,
/* [out] */ __RPC__out ULONG *puCount);
END_INTERFACE
} IEnumBackgroundCopyJobsVtbl;
@@ -0,0 +1,59 @@
typedef struct IBindCtxVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBindCtx * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBindCtx * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBindCtx * This);
HRESULT ( STDMETHODCALLTYPE *RegisterObjectBound )(
__RPC__in IBindCtx * This,
/* [unique][in] */ __RPC__in_opt IUnknown *punk);
HRESULT ( STDMETHODCALLTYPE *RevokeObjectBound )(
__RPC__in IBindCtx * This,
/* [unique][in] */ __RPC__in_opt IUnknown *punk);
HRESULT ( STDMETHODCALLTYPE *ReleaseBoundObjects )(
__RPC__in IBindCtx * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *SetBindOptions )(
IBindCtx * This,
/* [in] */ BIND_OPTS *pbindopts);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBindOptions )(
IBindCtx * This,
/* [out][in] */ BIND_OPTS *pbindopts);
HRESULT ( STDMETHODCALLTYPE *GetRunningObjectTable )(
__RPC__in IBindCtx * This,
/* [out] */ __RPC__deref_out_opt IRunningObjectTable **pprot);
HRESULT ( STDMETHODCALLTYPE *RegisterObjectParam )(
__RPC__in IBindCtx * This,
/* [in] */ __RPC__in LPOLESTR pszKey,
/* [unique][in] */ __RPC__in_opt IUnknown *punk);
HRESULT ( STDMETHODCALLTYPE *GetObjectParam )(
__RPC__in IBindCtx * This,
/* [in] */ __RPC__in LPOLESTR pszKey,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunk);
HRESULT ( STDMETHODCALLTYPE *EnumObjectParam )(
__RPC__in IBindCtx * This,
/* [out] */ __RPC__deref_out_opt IEnumString **ppenum);
HRESULT ( STDMETHODCALLTYPE *RevokeObjectParam )(
__RPC__in IBindCtx * This,
/* [in] */ __RPC__in LPOLESTR pszKey);
END_INTERFACE
} IBindCtxVtbl;
@@ -0,0 +1,38 @@
typedef struct IEnumExplorerCommandVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IEnumExplorerCommand * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IEnumExplorerCommand * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IEnumExplorerCommand * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumExplorerCommand * This,
/* [annotation][in] */
__in ULONG celt,
/* [annotation][length_is][size_is][out] */
__out_ecount_part(celt, *pceltFetched) IExplorerCommand **pUICommand,
/* [annotation][out] */
__out_opt __deref_out_range(0, celt) ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
__RPC__in IEnumExplorerCommand * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
__RPC__in IEnumExplorerCommand * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IEnumExplorerCommand * This,
/* [out] */ __RPC__deref_out_opt IEnumExplorerCommand **ppenum);
END_INTERFACE
} IEnumExplorerCommandVtbl;
@@ -0,0 +1,37 @@
typedef struct IEnumMonikerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IEnumMoniker * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IEnumMoniker * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IEnumMoniker * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumMoniker * This,
/* [in] */ ULONG celt,
/* [annotation] */
__out_ecount_part(celt,*pceltFetched) IMoniker **rgelt,
/* [annotation] */
__out_opt ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
__RPC__in IEnumMoniker * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
__RPC__in IEnumMoniker * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IEnumMoniker * This,
/* [out] */ __RPC__deref_out_opt IEnumMoniker **ppenum);
END_INTERFACE
} IEnumMonikerVtbl;
@@ -0,0 +1,38 @@
typedef struct IEnumShellItemsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IEnumShellItems * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IEnumShellItems * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IEnumShellItems * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumShellItems * This,
/* [annotation][in] */
__in ULONG celt,
/* [annotation][length_is][size_is][out] */
__out_ecount_part(celt, *pceltFetched) IShellItem **rgelt,
/* [annotation][out] */
__out_opt __deref_out_range(0, celt) ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
__RPC__in IEnumShellItems * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
__RPC__in IEnumShellItems * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IEnumShellItems * This,
/* [out] */ __RPC__deref_out_opt IEnumShellItems **ppenum);
END_INTERFACE
} IEnumShellItemsVtbl;
@@ -0,0 +1,37 @@
typedef struct IEnumStringVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IEnumString * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IEnumString * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IEnumString * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumString * This,
/* [in] */ ULONG celt,
/* [annotation] */
__RPC__out_ecount_part(celt,*pceltFetched) LPOLESTR *rgelt,
/* [annotation] */
__out_opt ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
__RPC__in IEnumString * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
__RPC__in IEnumString * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IEnumString * This,
/* [out] */ __RPC__deref_out_opt IEnumString **ppenum);
END_INTERFACE
} IEnumStringVtbl;
@@ -0,0 +1,56 @@
typedef struct IExplorerCommandVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IExplorerCommand * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IExplorerCommand * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IExplorerCommand * This);
HRESULT ( STDMETHODCALLTYPE *GetTitle )(
__RPC__in IExplorerCommand * This,
/* [unique][in] */ __RPC__in_opt IShellItemArray *psiItemArray,
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName);
HRESULT ( STDMETHODCALLTYPE *GetIcon )(
__RPC__in IExplorerCommand * This,
/* [unique][in] */ __RPC__in_opt IShellItemArray *psiItemArray,
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszIcon);
HRESULT ( STDMETHODCALLTYPE *GetToolTip )(
__RPC__in IExplorerCommand * This,
/* [unique][in] */ __RPC__in_opt IShellItemArray *psiItemArray,
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszInfotip);
HRESULT ( STDMETHODCALLTYPE *GetCanonicalName )(
__RPC__in IExplorerCommand * This,
/* [out] */ __RPC__out GUID *pguidCommandName);
HRESULT ( STDMETHODCALLTYPE *GetState )(
__RPC__in IExplorerCommand * This,
/* [in] */ __RPC__in_opt IShellItemArray *psiItemArray,
/* [in] */ BOOL fOkToBeSlow,
/* [out] */ __RPC__out EXPCMDSTATE *pCmdState);
HRESULT ( STDMETHODCALLTYPE *Invoke )(
__RPC__in IExplorerCommand * This,
/* [in] */ __RPC__in_opt IShellItemArray *psiItemArray,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc);
HRESULT ( STDMETHODCALLTYPE *GetFlags )(
__RPC__in IExplorerCommand * This,
/* [out] */ __RPC__out EXPCMDFLAGS *pFlags);
HRESULT ( STDMETHODCALLTYPE *EnumSubCommands )(
__RPC__in IExplorerCommand * This,
/* [out] */ __RPC__deref_out_opt IEnumExplorerCommand **ppEnum);
END_INTERFACE
} IExplorerCommandVtbl;
@@ -0,0 +1,52 @@
typedef struct IRunningObjectTableVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IRunningObjectTable * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IRunningObjectTable * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IRunningObjectTable * This);
HRESULT ( STDMETHODCALLTYPE *Register )(
__RPC__in IRunningObjectTable * This,
/* [in] */ DWORD grfFlags,
/* [unique][in] */ __RPC__in_opt IUnknown *punkObject,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName,
/* [out] */ __RPC__out DWORD *pdwRegister);
HRESULT ( STDMETHODCALLTYPE *Revoke )(
__RPC__in IRunningObjectTable * This,
/* [in] */ DWORD dwRegister);
HRESULT ( STDMETHODCALLTYPE *IsRunning )(
__RPC__in IRunningObjectTable * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName);
HRESULT ( STDMETHODCALLTYPE *GetObject )(
__RPC__in IRunningObjectTable * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkObject);
HRESULT ( STDMETHODCALLTYPE *NoteChangeTime )(
__RPC__in IRunningObjectTable * This,
/* [in] */ DWORD dwRegister,
/* [in] */ __RPC__in FILETIME *pfiletime);
HRESULT ( STDMETHODCALLTYPE *GetTimeOfLastChange )(
__RPC__in IRunningObjectTable * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName,
/* [out] */ __RPC__out FILETIME *pfiletime);
HRESULT ( STDMETHODCALLTYPE *EnumRunning )(
__RPC__in IRunningObjectTable * This,
/* [out] */ __RPC__deref_out_opt IEnumMoniker **ppenumMoniker);
END_INTERFACE
} IRunningObjectTableVtbl;
@@ -0,0 +1,45 @@
typedef struct IShellItemVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IShellItem * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IShellItem * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IShellItem * This);
HRESULT ( STDMETHODCALLTYPE *BindToHandler )(
__RPC__in IShellItem * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [in] */ __RPC__in REFGUID bhid,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetParent )(
__RPC__in IShellItem * This,
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
__RPC__in IShellItem * This,
/* [in] */ SIGDN sigdnName,
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
__RPC__in IShellItem * This,
/* [in] */ SFGAOF sfgaoMask,
/* [out] */ __RPC__out SFGAOF *psfgaoAttribs);
HRESULT ( STDMETHODCALLTYPE *Compare )(
__RPC__in IShellItem * This,
/* [in] */ __RPC__in_opt IShellItem *psi,
/* [in] */ SICHINTF hint,
/* [out] */ __RPC__out int *piOrder);
END_INTERFACE
} IShellItemVtbl;
@@ -0,0 +1,56 @@
typedef struct IShellItemArrayVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IShellItemArray * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IShellItemArray * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IShellItemArray * This);
HRESULT ( STDMETHODCALLTYPE *BindToHandler )(
__RPC__in IShellItemArray * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [in] */ __RPC__in REFGUID bhid,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */ __RPC__deref_out_opt void **ppvOut);
HRESULT ( STDMETHODCALLTYPE *GetPropertyStore )(
__RPC__in IShellItemArray * This,
/* [in] */ GETPROPERTYSTOREFLAGS flags,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetPropertyDescriptionList )(
__RPC__in IShellItemArray * This,
/* [in] */ __RPC__in REFPROPERTYKEY keyType,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
__RPC__in IShellItemArray * This,
/* [in] */ SIATTRIBFLAGS AttribFlags,
/* [in] */ SFGAOF sfgaoMask,
/* [out] */ __RPC__out SFGAOF *psfgaoAttribs);
HRESULT ( STDMETHODCALLTYPE *GetCount )(
__RPC__in IShellItemArray * This,
/* [out] */ __RPC__out DWORD *pdwNumItems);
HRESULT ( STDMETHODCALLTYPE *GetItemAt )(
__RPC__in IShellItemArray * This,
/* [in] */ DWORD dwIndex,
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
HRESULT ( STDMETHODCALLTYPE *EnumItems )(
__RPC__in IShellItemArray * This,
/* [out] */ __RPC__deref_out_opt IEnumShellItems **ppenumShellItems);
END_INTERFACE
} IShellItemArrayVtbl;
@@ -0,0 +1,29 @@
typedef struct ICallFactoryVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICallFactory * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICallFactory * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICallFactory * This);
HRESULT ( STDMETHODCALLTYPE *CreateCall )(
ICallFactory * This,
/* [annotation][in] */
__in REFIID riid,
/* [annotation][in] */
__in_opt IUnknown *pCtrlUnk,
/* [annotation][in] */
__in REFIID riid2,
/* [annotation][iid_is][out] */
__deref_out IUnknown **ppv);
END_INTERFACE
} ICallFactoryVtbl;
@@ -0,0 +1,127 @@
typedef struct ICallFrameVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICallFrame * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICallFrame * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICallFrame * This);
HRESULT ( STDMETHODCALLTYPE *GetInfo )(
ICallFrame * This,
/* [out] */ CALLFRAMEINFO *pInfo);
HRESULT ( STDMETHODCALLTYPE *GetIIDAndMethod )(
ICallFrame * This,
/* [out] */ IID *pIID,
/* [out] */ ULONG *piMethod);
HRESULT ( STDMETHODCALLTYPE *GetNames )(
ICallFrame * This,
/* [annotation][out] */
__deref_out_opt LPWSTR *pwszInterface,
/* [annotation][out] */
__deref_out_opt LPWSTR *pwszMethod);
PVOID ( STDMETHODCALLTYPE *GetStackLocation )(
ICallFrame * This);
VOID ( STDMETHODCALLTYPE *SetStackLocation )(
ICallFrame * This,
/* [in] */ PVOID pvStack);
VOID ( STDMETHODCALLTYPE *SetReturnValue )(
ICallFrame * This,
/* [in] */ HRESULT hr);
HRESULT ( STDMETHODCALLTYPE *GetReturnValue )(
ICallFrame * This);
HRESULT ( STDMETHODCALLTYPE *GetParamInfo )(
ICallFrame * This,
/* [in] */ ULONG iparam,
/* [out] */ CALLFRAMEPARAMINFO *pInfo);
HRESULT ( STDMETHODCALLTYPE *SetParam )(
ICallFrame * This,
/* [in] */ ULONG iparam,
/* [in] */ VARIANT *pvar);
HRESULT ( STDMETHODCALLTYPE *GetParam )(
ICallFrame * This,
/* [in] */ ULONG iparam,
/* [out] */ VARIANT *pvar);
HRESULT ( STDMETHODCALLTYPE *Copy )(
ICallFrame * This,
/* [in] */ CALLFRAME_COPY copyControl,
/* [in] */ ICallFrameWalker *pWalker,
/* [out] */ ICallFrame **ppFrame);
HRESULT ( STDMETHODCALLTYPE *Free )(
ICallFrame * This,
/* [in] */ ICallFrame *pframeArgsDest,
/* [in] */ ICallFrameWalker *pWalkerDestFree,
/* [in] */ ICallFrameWalker *pWalkerCopy,
/* [in] */ DWORD freeFlags,
/* [in] */ ICallFrameWalker *pWalkerFree,
/* [in] */ DWORD nullFlags);
HRESULT ( STDMETHODCALLTYPE *FreeParam )(
ICallFrame * This,
/* [in] */ ULONG iparam,
/* [in] */ DWORD freeFlags,
/* [in] */ ICallFrameWalker *pWalkerFree,
/* [in] */ DWORD nullFlags);
HRESULT ( STDMETHODCALLTYPE *WalkFrame )(
ICallFrame * This,
/* [in] */ DWORD walkWhat,
/* [in] */ ICallFrameWalker *pWalker);
HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )(
ICallFrame * This,
/* [in] */ CALLFRAME_MARSHALCONTEXT *pmshlContext,
/* [in] */ MSHLFLAGS mshlflags,
/* [out] */ ULONG *pcbBufferNeeded);
HRESULT ( STDMETHODCALLTYPE *Marshal )(
ICallFrame * This,
/* [in] */ CALLFRAME_MARSHALCONTEXT *pmshlContext,
/* [in] */ MSHLFLAGS mshlflags,
/* [size_is][in] */ PVOID pBuffer,
/* [in] */ ULONG cbBuffer,
/* [out] */ ULONG *pcbBufferUsed,
/* [out] */ RPCOLEDATAREP *pdataRep,
/* [out] */ ULONG *prpcFlags);
HRESULT ( STDMETHODCALLTYPE *Unmarshal )(
ICallFrame * This,
/* [size_is][in] */ PVOID pBuffer,
/* [in] */ ULONG cbBuffer,
/* [in] */ RPCOLEDATAREP dataRep,
/* [in] */ CALLFRAME_MARSHALCONTEXT *pcontext,
/* [out] */ ULONG *pcbUnmarshalled);
HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )(
ICallFrame * This,
/* [size_is][in] */ PVOID pBuffer,
/* [in] */ ULONG cbBuffer,
/* [in] */ ULONG ibFirstRelease,
/* [in] */ RPCOLEDATAREP dataRep,
/* [in] */ CALLFRAME_MARSHALCONTEXT *pcontext);
HRESULT ( STDMETHODCALLTYPE *Invoke )(
ICallFrame * This,
/* [in] */ void *pvReceiver,
...);
END_INTERFACE
} ICallFrameVtbl;
@@ -0,0 +1,22 @@
typedef struct ICallFrameEventsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICallFrameEvents * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICallFrameEvents * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICallFrameEvents * This);
HRESULT ( STDMETHODCALLTYPE *OnCall )(
ICallFrameEvents * This,
/* [in] */ ICallFrame *pFrame);
END_INTERFACE
} ICallFrameEventsVtbl;
@@ -0,0 +1,25 @@
typedef struct ICallFrameWalkerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICallFrameWalker * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICallFrameWalker * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICallFrameWalker * This);
HRESULT ( STDMETHODCALLTYPE *OnWalkInterface )(
ICallFrameWalker * This,
/* [in] */ REFIID iid,
/* [in] */ PVOID *ppvInterface,
/* [in] */ BOOL fIn,
/* [in] */ BOOL fOut);
END_INTERFACE
} ICallFrameWalkerVtbl;
@@ -0,0 +1,56 @@
typedef struct ICallInterceptorVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICallInterceptor * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICallInterceptor * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICallInterceptor * This);
HRESULT ( STDMETHODCALLTYPE *CallIndirect )(
ICallInterceptor * This,
/* [out] */ HRESULT *phrReturn,
/* [in] */ ULONG iMethod,
/* [in] */ void *pvArgs,
/* [out] */ ULONG *cbArgs);
HRESULT ( STDMETHODCALLTYPE *GetMethodInfo )(
ICallInterceptor * This,
/* [in] */ ULONG iMethod,
/* [out] */ CALLFRAMEINFO *pInfo,
/* [annotation][out] */
__deref_out_opt LPWSTR *pwszMethod);
HRESULT ( STDMETHODCALLTYPE *GetStackSize )(
ICallInterceptor * This,
/* [in] */ ULONG iMethod,
/* [out] */ ULONG *cbArgs);
HRESULT ( STDMETHODCALLTYPE *GetIID )(
ICallInterceptor * This,
/* [annotation][out] */
__out_opt IID *piid,
/* [annotation][out] */
__out_opt BOOL *pfDerivesFromIDispatch,
/* [annotation][out] */
__out_opt ULONG *pcMethod,
/* [annotation][out] */
__deref_out_opt LPWSTR *pwszInterface);
HRESULT ( STDMETHODCALLTYPE *RegisterSink )(
ICallInterceptor * This,
/* [in] */ ICallFrameEvents *psink);
HRESULT ( STDMETHODCALLTYPE *GetRegisteredSink )(
ICallInterceptor * This,
/* [out] */ ICallFrameEvents **ppsink);
END_INTERFACE
} ICallInterceptorVtbl;
@@ -0,0 +1,27 @@
typedef struct IClassFactoryVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IClassFactory * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IClassFactory * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IClassFactory * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateInstance )(
IClassFactory * This,
/* [unique][in] */ IUnknown *pUnkOuter,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *LockServer )(
IClassFactory * This,
/* [in] */ BOOL fLock);
END_INTERFACE
} IClassFactoryVtbl;
@@ -0,0 +1,63 @@
typedef struct IClientSecurityVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IClientSecurity * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IClientSecurity * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IClientSecurity * This);
HRESULT ( STDMETHODCALLTYPE *QueryBlanket )(
IClientSecurity * This,
/* [annotation][in] */
__in IUnknown *pProxy,
/* [annotation][out] */
__out DWORD *pAuthnSvc,
/* [annotation][out] */
__out_opt DWORD *pAuthzSvc,
/* [annotation][out] */
__RPC__deref_out_opt OLECHAR **pServerPrincName,
/* [annotation][out] */
__out_opt DWORD *pAuthnLevel,
/* [annotation][out] */
__out_opt DWORD *pImpLevel,
/* [annotation][out] */
__deref_out_opt void **pAuthInfo,
/* [annotation][out] */
__out_opt DWORD *pCapabilites);
HRESULT ( STDMETHODCALLTYPE *SetBlanket )(
IClientSecurity * This,
/* [annotation][in] */
__in IUnknown *pProxy,
/* [annotation][in] */
__in DWORD dwAuthnSvc,
/* [annotation][in] */
__in DWORD dwAuthzSvc,
/* [annotation][in] */
__RPC__in_opt OLECHAR *pServerPrincName,
/* [annotation][in] */
__in DWORD dwAuthnLevel,
/* [annotation][in] */
__in DWORD dwImpLevel,
/* [annotation][in] */
__in_opt void *pAuthInfo,
/* [annotation][in] */
__in DWORD dwCapabilities);
HRESULT ( STDMETHODCALLTYPE *CopyProxy )(
IClientSecurity * This,
/* [annotation][in] */
__in IUnknown *pProxy,
/* [annotation][out] */
__deref_out IUnknown **ppCopy);
END_INTERFACE
} IClientSecurityVtbl;
@@ -0,0 +1,74 @@
typedef struct IComCatalogVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IComCatalog * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IComCatalog * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IComCatalog * This);
HRESULT ( STDMETHODCALLTYPE *GetClassInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidConfiguredClsid,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetApplicationInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidApplId,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetProcessInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidProcess,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetServerGroupInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidServerGroup,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetRetQueueInfo )(
IComCatalog * This,
/* [string][in] */ WCHAR *wszFormatName,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetApplicationInfoForExe )(
IComCatalog * This,
/* [string][in] */ WCHAR *pwszExeName,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetTypeLibrary )(
IComCatalog * This,
/* [in] */ REFGUID guidTypeLib,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetInterfaceInfo )(
IComCatalog * This,
/* [in] */ REFIID iidInterface,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *FlushCache )(
IComCatalog * This);
HRESULT ( STDMETHODCALLTYPE *GetClassInfoFromProgId )(
IComCatalog * This,
/* [in] */ WCHAR *pwszProgID,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
END_INTERFACE
} IComCatalogVtbl;
@@ -0,0 +1,22 @@
typedef struct IInternalUnknownVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IInternalUnknown * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IInternalUnknown * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IInternalUnknown * This);
HRESULT ( STDMETHODCALLTYPE *QueryInternalInterface )(
IInternalUnknown * This,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
END_INTERFACE
} IInternalUnknownVtbl;
@@ -0,0 +1,58 @@
typedef struct IMarshalVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMarshal * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMarshal * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMarshal * This);
HRESULT ( STDMETHODCALLTYPE *GetUnmarshalClass )(
IMarshal * This,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ CLSID *pCid);
HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )(
IMarshal * This,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ DWORD *pSize);
HRESULT ( STDMETHODCALLTYPE *MarshalInterface )(
IMarshal * This,
/* [unique][in] */ IStream *pStm,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags);
HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )(
IMarshal * This,
/* [unique][in] */ IStream *pStm,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )(
IMarshal * This,
/* [unique][in] */ IStream *pStm);
HRESULT ( STDMETHODCALLTYPE *DisconnectObject )(
IMarshal * This,
/* [in] */ DWORD dwReserved);
END_INTERFACE
} IMarshalVtbl;
@@ -0,0 +1,122 @@
typedef struct IMonikerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IMoniker * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IMoniker * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IMoniker * This);
HRESULT ( STDMETHODCALLTYPE *GetClassID )(
__RPC__in IMoniker * This,
/* [out] */ __RPC__out CLSID *pClassID);
HRESULT ( STDMETHODCALLTYPE *IsDirty )(
__RPC__in IMoniker * This);
HRESULT ( STDMETHODCALLTYPE *Load )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IStream *pStm);
HRESULT ( STDMETHODCALLTYPE *Save )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IStream *pStm,
/* [in] */ BOOL fClearDirty);
HRESULT ( STDMETHODCALLTYPE *GetSizeMax )(
__RPC__in IMoniker * This,
/* [out] */ __RPC__out ULARGE_INTEGER *pcbSize);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BindToObject )(
IMoniker * This,
/* [unique][in] */ IBindCtx *pbc,
/* [unique][in] */ IMoniker *pmkToLeft,
/* [in] */ REFIID riidResult,
/* [iid_is][out] */ void **ppvResult);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BindToStorage )(
IMoniker * This,
/* [unique][in] */ IBindCtx *pbc,
/* [unique][in] */ IMoniker *pmkToLeft,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObj);
HRESULT ( STDMETHODCALLTYPE *Reduce )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [in] */ DWORD dwReduceHowFar,
/* [unique][out][in] */ __RPC__deref_opt_inout_opt IMoniker **ppmkToLeft,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmkReduced);
HRESULT ( STDMETHODCALLTYPE *ComposeWith )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkRight,
/* [in] */ BOOL fOnlyIfNotGeneric,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmkComposite);
HRESULT ( STDMETHODCALLTYPE *Enum )(
__RPC__in IMoniker * This,
/* [in] */ BOOL fForward,
/* [out] */ __RPC__deref_out_opt IEnumMoniker **ppenumMoniker);
HRESULT ( STDMETHODCALLTYPE *IsEqual )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkOtherMoniker);
HRESULT ( STDMETHODCALLTYPE *Hash )(
__RPC__in IMoniker * This,
/* [out] */ __RPC__out DWORD *pdwHash);
HRESULT ( STDMETHODCALLTYPE *IsRunning )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkNewlyRunning);
HRESULT ( STDMETHODCALLTYPE *GetTimeOfLastChange )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft,
/* [out] */ __RPC__out FILETIME *pFileTime);
HRESULT ( STDMETHODCALLTYPE *Inverse )(
__RPC__in IMoniker * This,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmk);
HRESULT ( STDMETHODCALLTYPE *CommonPrefixWith )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkOther,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmkPrefix);
HRESULT ( STDMETHODCALLTYPE *RelativePathTo )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkOther,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmkRelPath);
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft,
/* [out] */ __RPC__deref_out_opt LPOLESTR *ppszDisplayName);
HRESULT ( STDMETHODCALLTYPE *ParseDisplayName )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft,
/* [in] */ __RPC__in LPOLESTR pszDisplayName,
/* [out] */ __RPC__out ULONG *pchEaten,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmkOut);
HRESULT ( STDMETHODCALLTYPE *IsSystemMoniker )(
__RPC__in IMoniker * This,
/* [out] */ __RPC__out DWORD *pdwMksys);
END_INTERFACE
} IMonikerVtbl;
@@ -0,0 +1,67 @@
typedef struct IObjContextVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IObjContext * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IObjContext * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IObjContext * This);
HRESULT ( STDMETHODCALLTYPE *SetProperty )(
IObjContext * This,
/* [annotation][in] */
__in REFGUID rpolicyId,
/* [annotation][in] */
__in CPFLAGS flags,
/* [annotation][in] */
__in IUnknown *pUnk);
HRESULT ( STDMETHODCALLTYPE *RemoveProperty )(
IObjContext * This,
/* [annotation][in] */
__in REFGUID rPolicyId);
HRESULT ( STDMETHODCALLTYPE *GetProperty )(
IObjContext * This,
/* [annotation][in] */
__in REFGUID rGuid,
/* [annotation][out] */
__out CPFLAGS *pFlags,
/* [annotation][out] */
__deref_out IUnknown **ppUnk);
HRESULT ( STDMETHODCALLTYPE *EnumContextProps )(
IObjContext * This,
/* [annotation][out] */
__deref_out IEnumContextProps **ppEnumContextProps);
PVOID ( STDMETHODCALLTYPE *Reserved1 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved2 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved3 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved4 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved5 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved6 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved7 )(
IObjContext * This);
END_INTERFACE
} IObjContextVtbl;
@@ -0,0 +1,22 @@
typedef struct IPersistVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IPersist * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IPersist * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IPersist * This);
HRESULT ( STDMETHODCALLTYPE *GetClassID )(
__RPC__in IPersist * This,
/* [out] */ __RPC__out CLSID *pClassID);
END_INTERFACE
} IPersistVtbl;
@@ -0,0 +1,43 @@
typedef struct IPersistFileVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IPersistFile * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IPersistFile * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IPersistFile * This);
HRESULT ( STDMETHODCALLTYPE *GetClassID )(
__RPC__in IPersistFile * This,
/* [out] */ __RPC__out CLSID *pClassID);
HRESULT ( STDMETHODCALLTYPE *IsDirty )(
__RPC__in IPersistFile * This);
HRESULT ( STDMETHODCALLTYPE *Load )(
__RPC__in IPersistFile * This,
/* [in] */ __RPC__in LPCOLESTR pszFileName,
/* [in] */ DWORD dwMode);
HRESULT ( STDMETHODCALLTYPE *Save )(
__RPC__in IPersistFile * This,
/* [unique][in] */ __RPC__in_opt LPCOLESTR pszFileName,
/* [in] */ BOOL fRemember);
HRESULT ( STDMETHODCALLTYPE *SaveCompleted )(
__RPC__in IPersistFile * This,
/* [unique][in] */ __RPC__in_opt LPCOLESTR pszFileName);
HRESULT ( STDMETHODCALLTYPE *GetCurFile )(
__RPC__in IPersistFile * This,
/* [out] */ __RPC__deref_out_opt LPOLESTR *ppszFileName);
END_INTERFACE
} IPersistFileVtbl;
@@ -0,0 +1,36 @@
typedef struct IRemUnknownVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IRemUnknown * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IRemUnknown * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IRemUnknown * This);
HRESULT ( STDMETHODCALLTYPE *RemQueryInterface )(
IRemUnknown * This,
/* [in] */ REFIPID ripid,
/* [in] */ ULONG cRefs,
/* [in] */ USHORT cIids,
/* [size_is][in] */ IID *iids,
/* [size_is][size_is][out] */ REMQIRESULT **ppQIResults);
HRESULT ( STDMETHODCALLTYPE *RemAddRef )(
IRemUnknown * This,
/* [in] */ USHORT cInterfaceRefs,
/* [size_is][in] */ REMINTERFACEREF *InterfaceRefs,
/* [size_is][out] */ HRESULT *pResults);
HRESULT ( STDMETHODCALLTYPE *RemRelease )(
IRemUnknown * This,
/* [in] */ USHORT cInterfaceRefs,
/* [size_is][in] */ REMINTERFACEREF *InterfaceRefs);
END_INTERFACE
} IRemUnknownVtbl;
@@ -0,0 +1,101 @@
typedef struct IShellLinkAVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IShellLinkA * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IShellLinkA * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IShellLinkA * This);
HRESULT ( STDMETHODCALLTYPE *GetPath )(
__RPC__in IShellLinkA * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(cch) LPSTR pszFile,
/* [in] */ int cch,
/* [unique][out][in] */ __RPC__inout_opt WIN32_FIND_DATAA *pfd,
/* [in] */ DWORD fFlags);
HRESULT ( STDMETHODCALLTYPE *GetIDList )(
__RPC__in IShellLinkA * This,
/* [out] */ __RPC__deref_out_opt PIDLIST_ABSOLUTE *ppidl);
HRESULT ( STDMETHODCALLTYPE *SetIDList )(
__RPC__in IShellLinkA * This,
/* [in] */ __RPC__in PCIDLIST_ABSOLUTE pidl);
HRESULT ( STDMETHODCALLTYPE *GetDescription )(
__RPC__in IShellLinkA * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(cch) LPSTR pszName,
/* [in] */ int cch);
HRESULT ( STDMETHODCALLTYPE *SetDescription )(
__RPC__in IShellLinkA * This,
/* [string][in] */ __RPC__in_string LPCSTR pszName);
HRESULT ( STDMETHODCALLTYPE *GetWorkingDirectory )(
__RPC__in IShellLinkA * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(cch) LPSTR pszDir,
/* [in] */ int cch);
HRESULT ( STDMETHODCALLTYPE *SetWorkingDirectory )(
__RPC__in IShellLinkA * This,
/* [string][in] */ __RPC__in_string LPCSTR pszDir);
HRESULT ( STDMETHODCALLTYPE *GetArguments )(
__RPC__in IShellLinkA * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(cch) LPSTR pszArgs,
/* [in] */ int cch);
HRESULT ( STDMETHODCALLTYPE *SetArguments )(
__RPC__in IShellLinkA * This,
/* [string][in] */ __RPC__in_string LPCSTR pszArgs);
HRESULT ( STDMETHODCALLTYPE *GetHotkey )(
__RPC__in IShellLinkA * This,
/* [out] */ __RPC__out WORD *pwHotkey);
HRESULT ( STDMETHODCALLTYPE *SetHotkey )(
__RPC__in IShellLinkA * This,
/* [in] */ WORD wHotkey);
HRESULT ( STDMETHODCALLTYPE *GetShowCmd )(
__RPC__in IShellLinkA * This,
/* [out] */ __RPC__out int *piShowCmd);
HRESULT ( STDMETHODCALLTYPE *SetShowCmd )(
__RPC__in IShellLinkA * This,
/* [in] */ int iShowCmd);
HRESULT ( STDMETHODCALLTYPE *GetIconLocation )(
__RPC__in IShellLinkA * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(cch) LPSTR pszIconPath,
/* [in] */ int cch,
/* [out] */ __RPC__out int *piIcon);
HRESULT ( STDMETHODCALLTYPE *SetIconLocation )(
__RPC__in IShellLinkA * This,
/* [string][in] */ __RPC__in_string LPCSTR pszIconPath,
/* [in] */ int iIcon);
HRESULT ( STDMETHODCALLTYPE *SetRelativePath )(
__RPC__in IShellLinkA * This,
/* [string][in] */ __RPC__in_string LPCSTR pszPathRel,
/* [in] */ DWORD dwReserved);
HRESULT ( STDMETHODCALLTYPE *Resolve )(
__RPC__in IShellLinkA * This,
/* [unique][in] */ __RPC__in_opt HWND hwnd,
/* [in] */ DWORD fFlags);
HRESULT ( STDMETHODCALLTYPE *SetPath )(
__RPC__in IShellLinkA * This,
/* [string][in] */ __RPC__in_string LPCSTR pszFile);
END_INTERFACE
} IShellLinkAVtbl;
@@ -0,0 +1,101 @@
typedef struct IShellLinkWVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IShellLinkW * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IShellLinkW * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IShellLinkW * This);
HRESULT ( STDMETHODCALLTYPE *GetPath )(
__RPC__in IShellLinkW * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(cch) LPWSTR pszFile,
/* [in] */ int cch,
/* [unique][out][in] */ __RPC__inout_opt WIN32_FIND_DATAW *pfd,
/* [in] */ DWORD fFlags);
HRESULT ( STDMETHODCALLTYPE *GetIDList )(
__RPC__in IShellLinkW * This,
/* [out] */ __RPC__deref_out_opt PIDLIST_ABSOLUTE *ppidl);
HRESULT ( STDMETHODCALLTYPE *SetIDList )(
__RPC__in IShellLinkW * This,
/* [unique][in] */ __RPC__in_opt PCIDLIST_ABSOLUTE pidl);
HRESULT ( STDMETHODCALLTYPE *GetDescription )(
__RPC__in IShellLinkW * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(cch) LPWSTR pszName,
int cch);
HRESULT ( STDMETHODCALLTYPE *SetDescription )(
__RPC__in IShellLinkW * This,
/* [string][in] */ __RPC__in_string LPCWSTR pszName);
HRESULT ( STDMETHODCALLTYPE *GetWorkingDirectory )(
__RPC__in IShellLinkW * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(cch) LPWSTR pszDir,
int cch);
HRESULT ( STDMETHODCALLTYPE *SetWorkingDirectory )(
__RPC__in IShellLinkW * This,
/* [string][in] */ __RPC__in_string LPCWSTR pszDir);
HRESULT ( STDMETHODCALLTYPE *GetArguments )(
__RPC__in IShellLinkW * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(cch) LPWSTR pszArgs,
/* [in] */ int cch);
HRESULT ( STDMETHODCALLTYPE *SetArguments )(
__RPC__in IShellLinkW * This,
/* [string][in] */ __RPC__in_string LPCWSTR pszArgs);
HRESULT ( STDMETHODCALLTYPE *GetHotkey )(
__RPC__in IShellLinkW * This,
/* [out] */ __RPC__out WORD *pwHotkey);
HRESULT ( STDMETHODCALLTYPE *SetHotkey )(
__RPC__in IShellLinkW * This,
/* [in] */ WORD wHotkey);
HRESULT ( STDMETHODCALLTYPE *GetShowCmd )(
__RPC__in IShellLinkW * This,
/* [out] */ __RPC__out int *piShowCmd);
HRESULT ( STDMETHODCALLTYPE *SetShowCmd )(
__RPC__in IShellLinkW * This,
/* [in] */ int iShowCmd);
HRESULT ( STDMETHODCALLTYPE *GetIconLocation )(
__RPC__in IShellLinkW * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(cch) LPWSTR pszIconPath,
/* [in] */ int cch,
/* [out] */ __RPC__out int *piIcon);
HRESULT ( STDMETHODCALLTYPE *SetIconLocation )(
__RPC__in IShellLinkW * This,
/* [string][in] */ __RPC__in_string LPCWSTR pszIconPath,
/* [in] */ int iIcon);
HRESULT ( STDMETHODCALLTYPE *SetRelativePath )(
__RPC__in IShellLinkW * This,
/* [string][in] */ __RPC__in_string LPCWSTR pszPathRel,
/* [in] */ DWORD dwReserved);
HRESULT ( STDMETHODCALLTYPE *Resolve )(
__RPC__in IShellLinkW * This,
/* [unique][in] */ __RPC__in_opt HWND hwnd,
/* [in] */ DWORD fFlags);
HRESULT ( STDMETHODCALLTYPE *SetPath )(
__RPC__in IShellLinkW * This,
/* [string][in] */ __RPC__in_string LPCWSTR pszFile);
END_INTERFACE
} IShellLinkWVtbl;
@@ -0,0 +1,20 @@
// IStdIdentity is an empty interface to check that an object is the IStdIdentity
// and thus query other interface
typedef struct IStdIdentityVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IUnknown * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IUnknown * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IUnknown * This);
END_INTERFACE
} IStdIdentityVtbl;
@@ -0,0 +1,108 @@
typedef struct IStorageVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IStorage * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IStorage * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IStorage * This);
HRESULT ( STDMETHODCALLTYPE *CreateStream )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [in] */ DWORD grfMode,
/* [in] */ DWORD reserved1,
/* [in] */ DWORD reserved2,
/* [out] */ IStream **ppstm);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *OpenStream )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ void *reserved1,
/* [in] */ DWORD grfMode,
/* [in] */ DWORD reserved2,
/* [out] */ IStream **ppstm);
HRESULT ( STDMETHODCALLTYPE *CreateStorage )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [in] */ DWORD grfMode,
/* [in] */ DWORD reserved1,
/* [in] */ DWORD reserved2,
/* [out] */ IStorage **ppstg);
HRESULT ( STDMETHODCALLTYPE *OpenStorage )(
IStorage * This,
/* [string][unique][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ IStorage *pstgPriority,
/* [in] */ DWORD grfMode,
/* [unique][in] */ SNB snbExclude,
/* [in] */ DWORD reserved,
/* [out] */ IStorage **ppstg);
HRESULT ( STDMETHODCALLTYPE *CopyTo )(
IStorage * This,
/* [in] */ DWORD ciidExclude,
/* [size_is][unique][in] */ const IID *rgiidExclude,
/* [unique][in] */ SNB snbExclude,
/* [unique][in] */ IStorage *pstgDest);
HRESULT ( STDMETHODCALLTYPE *MoveElementTo )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ IStorage *pstgDest,
/* [string][in] */ const OLECHAR *pwcsNewName,
/* [in] */ DWORD grfFlags);
HRESULT ( STDMETHODCALLTYPE *Commit )(
IStorage * This,
/* [in] */ DWORD grfCommitFlags);
HRESULT ( STDMETHODCALLTYPE *Revert )(
IStorage * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *EnumElements )(
IStorage * This,
/* [in] */ DWORD reserved1,
/* [size_is][unique][in] */ void *reserved2,
/* [in] */ DWORD reserved3,
/* [out] */ IEnumSTATSTG **ppenum);
HRESULT ( STDMETHODCALLTYPE *DestroyElement )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName);
HRESULT ( STDMETHODCALLTYPE *RenameElement )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsOldName,
/* [string][in] */ const OLECHAR *pwcsNewName);
HRESULT ( STDMETHODCALLTYPE *SetElementTimes )(
IStorage * This,
/* [string][unique][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ const FILETIME *pctime,
/* [unique][in] */ const FILETIME *patime,
/* [unique][in] */ const FILETIME *pmtime);
HRESULT ( STDMETHODCALLTYPE *SetClass )(
IStorage * This,
/* [in] */ REFCLSID clsid);
HRESULT ( STDMETHODCALLTYPE *SetStateBits )(
IStorage * This,
/* [in] */ DWORD grfStateBits,
/* [in] */ DWORD grfMask);
HRESULT ( STDMETHODCALLTYPE *Stat )(
IStorage * This,
/* [out] */ STATSTG *pstatstg,
/* [in] */ DWORD grfStatFlag);
END_INTERFACE
} IStorageVtbl;
@@ -0,0 +1,82 @@
typedef struct IStreamVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IStream * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IStream * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IStream * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )(
IStream * This,
/* [annotation] */
__out_bcount_part(cb, *pcbRead) void *pv,
/* [in] */ ULONG cb,
/* [annotation] */
__out_opt ULONG *pcbRead);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )(
IStream * This,
/* [annotation] */
__in_bcount(cb) const void *pv,
/* [in] */ ULONG cb,
/* [annotation] */
__out_opt ULONG *pcbWritten);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
IStream * This,
/* [in] */ LARGE_INTEGER dlibMove,
/* [in] */ DWORD dwOrigin,
/* [annotation] */
__out_opt ULARGE_INTEGER *plibNewPosition);
HRESULT ( STDMETHODCALLTYPE *SetSize )(
__RPC__in IStream * This,
/* [in] */ ULARGE_INTEGER libNewSize);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *CopyTo )(
IStream * This,
/* [unique][in] */ IStream *pstm,
/* [in] */ ULARGE_INTEGER cb,
/* [annotation] */
__out_opt ULARGE_INTEGER *pcbRead,
/* [annotation] */
__out_opt ULARGE_INTEGER *pcbWritten);
HRESULT ( STDMETHODCALLTYPE *Commit )(
__RPC__in IStream * This,
/* [in] */ DWORD grfCommitFlags);
HRESULT ( STDMETHODCALLTYPE *Revert )(
__RPC__in IStream * This);
HRESULT ( STDMETHODCALLTYPE *LockRegion )(
__RPC__in IStream * This,
/* [in] */ ULARGE_INTEGER libOffset,
/* [in] */ ULARGE_INTEGER cb,
/* [in] */ DWORD dwLockType);
HRESULT ( STDMETHODCALLTYPE *UnlockRegion )(
__RPC__in IStream * This,
/* [in] */ ULARGE_INTEGER libOffset,
/* [in] */ ULARGE_INTEGER cb,
/* [in] */ DWORD dwLockType);
HRESULT ( STDMETHODCALLTYPE *Stat )(
__RPC__in IStream * This,
/* [out] */ __RPC__out STATSTG *pstatstg,
/* [in] */ DWORD grfStatFlag);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IStream * This,
/* [out] */ __RPC__deref_out_opt IStream **ppstm);
END_INTERFACE
} IStreamVtbl;
@@ -0,0 +1,36 @@
typedef struct ITypeCompVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in ITypeComp * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out PVOID *ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in ITypeComp * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in ITypeComp * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Bind )(
ITypeComp * This,
/* [annotation][in] */
__RPC__in LPOLESTR szName,
/* [in] */ ULONG lHashVal,
/* [in] */ WORD wFlags,
/* [out] */ ITypeInfo **ppTInfo,
/* [out] */ DESCKIND *pDescKind,
/* [out] */ BINDPTR *pBindPtr);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BindType )(
ITypeComp * This,
/* [annotation][in] */
__RPC__in LPOLESTR szName,
/* [in] */ ULONG lHashVal,
/* [out] */ ITypeInfo **ppTInfo,
/* [out] */ ITypeComp **ppTComp);
END_INTERFACE
} ITypeCompVtbl;
@@ -0,0 +1,125 @@
typedef struct ITypeInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in ITypeInfo * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in ITypeInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in ITypeInfo * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetTypeAttr )(
ITypeInfo * This,
/* [out] */ TYPEATTR **ppTypeAttr);
HRESULT ( STDMETHODCALLTYPE *GetTypeComp )(
__RPC__in ITypeInfo * This,
/* [out] */ __RPC__deref_out_opt ITypeComp **ppTComp);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetFuncDesc )(
ITypeInfo * This,
/* [in] */ UINT index,
/* [out] */ FUNCDESC **ppFuncDesc);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetVarDesc )(
ITypeInfo * This,
/* [in] */ UINT index,
/* [out] */ VARDESC **ppVarDesc);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetNames )(
ITypeInfo * This,
/* [in] */ MEMBERID memid,
/* [length_is][size_is][out] */ BSTR *rgBstrNames,
/* [in] */ UINT cMaxNames,
/* [out] */ UINT *pcNames);
HRESULT ( STDMETHODCALLTYPE *GetRefTypeOfImplType )(
__RPC__in ITypeInfo * This,
/* [in] */ UINT index,
/* [out] */ __RPC__out HREFTYPE *pRefType);
HRESULT ( STDMETHODCALLTYPE *GetImplTypeFlags )(
__RPC__in ITypeInfo * This,
/* [in] */ UINT index,
/* [out] */ __RPC__out INT *pImplTypeFlags);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
ITypeInfo * This,
/* [annotation][size_is][in] */
__RPC__in_ecount(cNames) LPOLESTR *rgszNames,
/* [in] */ UINT cNames,
/* [size_is][out] */ MEMBERID *pMemId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ITypeInfo * This,
/* [in] */ PVOID pvInstance,
/* [in] */ MEMBERID memid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDocumentation )(
ITypeInfo * This,
/* [in] */ MEMBERID memid,
/* [out] */ BSTR *pBstrName,
/* [out] */ BSTR *pBstrDocString,
/* [out] */ DWORD *pdwHelpContext,
/* [out] */ BSTR *pBstrHelpFile);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDllEntry )(
ITypeInfo * This,
/* [in] */ MEMBERID memid,
/* [in] */ INVOKEKIND invKind,
/* [out] */ BSTR *pBstrDllName,
/* [out] */ BSTR *pBstrName,
/* [out] */ WORD *pwOrdinal);
HRESULT ( STDMETHODCALLTYPE *GetRefTypeInfo )(
__RPC__in ITypeInfo * This,
/* [in] */ HREFTYPE hRefType,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *AddressOfMember )(
ITypeInfo * This,
/* [in] */ MEMBERID memid,
/* [in] */ INVOKEKIND invKind,
/* [out] */ PVOID *ppv);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateInstance )(
ITypeInfo * This,
/* [in] */ IUnknown *pUnkOuter,
/* [in] */ REFIID riid,
/* [iid_is][out] */ PVOID *ppvObj);
HRESULT ( STDMETHODCALLTYPE *GetMops )(
__RPC__in ITypeInfo * This,
/* [in] */ MEMBERID memid,
/* [out] */ __RPC__deref_out_opt BSTR *pBstrMops);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetContainingTypeLib )(
ITypeInfo * This,
/* [out] */ ITypeLib **ppTLib,
/* [out] */ UINT *pIndex);
/* [local] */ DWORD /*void*/ ( STDMETHODCALLTYPE *ReleaseTypeAttr )(
ITypeInfo * This,
/* [in] */ TYPEATTR *pTypeAttr);
/* [local] */ DWORD ( STDMETHODCALLTYPE *ReleaseFuncDesc )(
ITypeInfo * This,
/* [in] */ FUNCDESC *pFuncDesc);
/* [local] */ DWORD ( STDMETHODCALLTYPE *ReleaseVarDesc )(
ITypeInfo * This,
/* [in] */ VARDESC *pVarDesc);
END_INTERFACE
} ITypeInfoVtbl;
@@ -0,0 +1,72 @@
typedef struct ITypeLibVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in ITypeLib * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in ITypeLib * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in ITypeLib * This);
/* [local] */ UINT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
ITypeLib * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
__RPC__in ITypeLib * This,
/* [in] */ UINT index,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoType )(
__RPC__in ITypeLib * This,
/* [in] */ UINT index,
/* [out] */ __RPC__out TYPEKIND *pTKind);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoOfGuid )(
__RPC__in ITypeLib * This,
/* [in] */ __RPC__in REFGUID guid,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTinfo);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetLibAttr )(
ITypeLib * This,
/* [out] */ TLIBATTR **ppTLibAttr);
HRESULT ( STDMETHODCALLTYPE *GetTypeComp )(
__RPC__in ITypeLib * This,
/* [out] */ __RPC__deref_out_opt ITypeComp **ppTComp);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDocumentation )(
ITypeLib * This,
/* [in] */ INT index,
/* [out] */ BSTR *pBstrName,
/* [out] */ BSTR *pBstrDocString,
/* [out] */ DWORD *pdwHelpContext,
/* [out] */ BSTR *pBstrHelpFile);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *IsName )(
ITypeLib * This,
/* [annotation][out][in] */
__RPC__inout LPOLESTR szNameBuf,
/* [in] */ ULONG lHashVal,
/* [out] */ BOOL *pfName);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *FindName )(
ITypeLib * This,
/* [annotation][out][in] */
__RPC__inout LPOLESTR szNameBuf,
/* [in] */ ULONG lHashVal,
/* [length_is][size_is][out] */ ITypeInfo **ppTInfo,
/* [length_is][size_is][out] */ MEMBERID *rgMemId,
/* [out][in] */ USHORT *pcFound);
/* [local] */ DWORD /* void */ ( STDMETHODCALLTYPE *ReleaseTLibAttr )(
ITypeLib * This,
/* [in] */ TLIBATTR *pTLibAttr);
END_INTERFACE
} ITypeLibVtbl;
@@ -0,0 +1,59 @@
typedef struct IActionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IAction * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IAction * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IAction * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
IAction * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IAction * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
IAction * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IAction * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
IAction * This,
/* [retval][out] */ BSTR *pId);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Id )(
IAction * This,
/* [in] */ BSTR Id);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
IAction * This,
/* [retval][out] */ TASK_ACTION_TYPE *pType);
END_INTERFACE
} IActionVtbl;
@@ -0,0 +1,88 @@
typedef struct IActionCollectionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IActionCollection * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IActionCollection * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IActionCollection * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
IActionCollection * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IActionCollection * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
IActionCollection * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IActionCollection * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
IActionCollection * This,
/* [retval][out] */ long *pCount);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
IActionCollection * This,
/* [in] */ long index,
/* [retval][out] */ IAction **ppAction);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
IActionCollection * This,
/* [retval][out] */ IUnknown **ppEnum);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XmlText )(
IActionCollection * This,
/* [retval][out] */ BSTR *pText);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XmlText )(
IActionCollection * This,
/* [in] */ BSTR text);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Create )(
IActionCollection * This,
/* [in] */ TASK_ACTION_TYPE type,
/* [retval][out] */ IAction **ppAction);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remove )(
IActionCollection * This,
/* [in] */ VARIANT index);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )(
IActionCollection * This);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Context )(
IActionCollection * This,
/* [retval][out] */ BSTR *pContext);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Context )(
IActionCollection * This,
/* [in] */ BSTR context);
END_INTERFACE
} IActionCollectionVtbl;
@@ -0,0 +1,75 @@
typedef struct IComHandlerActionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IComHandlerAction * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IComHandlerAction * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IComHandlerAction * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
IComHandlerAction * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IComHandlerAction * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
IComHandlerAction * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IComHandlerAction * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
IComHandlerAction * This,
/* [retval][out] */ BSTR *pId);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Id )(
IComHandlerAction * This,
/* [in] */ BSTR Id);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
IComHandlerAction * This,
/* [retval][out] */ TASK_ACTION_TYPE *pType);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )(
IComHandlerAction * This,
/* [retval][out] */ BSTR *pClsid);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClassId )(
IComHandlerAction * This,
/* [in] */ BSTR clsid);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Data )(
IComHandlerAction * This,
/* [retval][out] */ BSTR *pData);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Data )(
IComHandlerAction * This,
/* [in] */ BSTR data);
END_INTERFACE
} IComHandlerActionVtbl;
@@ -0,0 +1,139 @@
typedef struct IEmailActionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IEmailAction * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IEmailAction * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IEmailAction * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
IEmailAction * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IEmailAction * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
IEmailAction * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IEmailAction * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
IEmailAction * This,
/* [retval][out] */ BSTR *pId);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Id )(
IEmailAction * This,
/* [in] */ BSTR Id);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
IEmailAction * This,
/* [retval][out] */ TASK_ACTION_TYPE *pType);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )(
IEmailAction * This,
/* [retval][out] */ BSTR *pServer);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )(
IEmailAction * This,
/* [in] */ BSTR server);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Subject )(
IEmailAction * This,
/* [retval][out] */ BSTR *pSubject);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Subject )(
IEmailAction * This,
/* [in] */ BSTR subject);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_To )(
IEmailAction * This,
/* [retval][out] */ BSTR *pTo);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_To )(
IEmailAction * This,
/* [in] */ BSTR to);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Cc )(
IEmailAction * This,
/* [retval][out] */ BSTR *pCc);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Cc )(
IEmailAction * This,
/* [in] */ BSTR cc);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Bcc )(
IEmailAction * This,
/* [retval][out] */ BSTR *pBcc);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Bcc )(
IEmailAction * This,
/* [in] */ BSTR bcc);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ReplyTo )(
IEmailAction * This,
/* [retval][out] */ BSTR *pReplyTo);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ReplyTo )(
IEmailAction * This,
/* [in] */ BSTR replyTo);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_From )(
IEmailAction * This,
/* [retval][out] */ BSTR *pFrom);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_From )(
IEmailAction * This,
/* [in] */ BSTR from);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HeaderFields )(
IEmailAction * This,
/* [retval][out] */ ITaskNamedValueCollection **ppHeaderFields);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HeaderFields )(
IEmailAction * This,
/* [in] */ ITaskNamedValueCollection *pHeaderFields);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Body )(
IEmailAction * This,
/* [retval][out] */ BSTR *pBody);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Body )(
IEmailAction * This,
/* [in] */ BSTR body);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Attachments )(
IEmailAction * This,
/* [retval][out] */ SAFEARRAY * *pAttachements);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Attachments )(
IEmailAction * This,
/* [max_is][in] */ SAFEARRAY * pAttachements);
END_INTERFACE
} IEmailActionVtbl;
@@ -0,0 +1,83 @@
typedef struct IExecActionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IExecAction * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IExecAction * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IExecAction * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
IExecAction * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IExecAction * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
IExecAction * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IExecAction * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
IExecAction * This,
/* [retval][out] */ BSTR *pId);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Id )(
IExecAction * This,
/* [in] */ BSTR Id);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
IExecAction * This,
/* [retval][out] */ TASK_ACTION_TYPE *pType);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Path )(
IExecAction * This,
/* [retval][out] */ BSTR *pPath);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Path )(
IExecAction * This,
/* [in] */ BSTR path);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arguments )(
IExecAction * This,
/* [retval][out] */ BSTR *pArgument);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arguments )(
IExecAction * This,
/* [in] */ BSTR argument);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WorkingDirectory )(
IExecAction * This,
/* [retval][out] */ BSTR *pWorkingDirectory);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WorkingDirectory )(
IExecAction * This,
/* [in] */ BSTR workingDirectory);
END_INTERFACE
} IExecActionVtbl;
@@ -0,0 +1,79 @@
typedef struct IIdleSettingsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IIdleSettings * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IIdleSettings * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IIdleSettings * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
IIdleSettings * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IIdleSettings * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
IIdleSettings * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IIdleSettings * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IdleDuration )(
IIdleSettings * This,
/* [retval][out] */ BSTR *pDelay);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IdleDuration )(
IIdleSettings * This,
/* [in] */ BSTR delay);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WaitTimeout )(
IIdleSettings * This,
/* [retval][out] */ BSTR *pTimeout);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WaitTimeout )(
IIdleSettings * This,
/* [in] */ BSTR timeout);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StopOnIdleEnd )(
IIdleSettings * This,
/* [retval][out] */ VARIANT_BOOL *pStop);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StopOnIdleEnd )(
IIdleSettings * This,
/* [in] */ VARIANT_BOOL stop);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RestartOnIdle )(
IIdleSettings * This,
/* [retval][out] */ VARIANT_BOOL *pRestart);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RestartOnIdle )(
IIdleSettings * This,
/* [in] */ VARIANT_BOOL restart);
END_INTERFACE
} IIdleSettingsVtbl;
@@ -0,0 +1,63 @@
typedef struct INetworkSettingsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
INetworkSettings * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
INetworkSettings * This);
ULONG ( STDMETHODCALLTYPE *Release )(
INetworkSettings * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
INetworkSettings * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
INetworkSettings * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
INetworkSettings * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
INetworkSettings * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
INetworkSettings * This,
/* [retval][out] */ BSTR *pName);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )(
INetworkSettings * This,
/* [in] */ BSTR name);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
INetworkSettings * This,
/* [retval][out] */ BSTR *pId);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Id )(
INetworkSettings * This,
/* [in] */ BSTR id);
END_INTERFACE
} INetworkSettingsVtbl;
@@ -0,0 +1,95 @@
typedef struct IPrincipalVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IPrincipal * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IPrincipal * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IPrincipal * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
IPrincipal * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IPrincipal * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
IPrincipal * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IPrincipal * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
IPrincipal * This,
/* [retval][out] */ BSTR *pId);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Id )(
IPrincipal * This,
/* [in] */ BSTR Id);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayName )(
IPrincipal * This,
/* [retval][out] */ BSTR *pName);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayName )(
IPrincipal * This,
/* [in] */ BSTR name);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserId )(
IPrincipal * This,
/* [retval][out] */ BSTR *pUser);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserId )(
IPrincipal * This,
/* [in] */ BSTR user);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LogonType )(
IPrincipal * This,
/* [retval][out] */ TASK_LOGON_TYPE *pLogon);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LogonType )(
IPrincipal * This,
/* [in] */ TASK_LOGON_TYPE logon);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GroupId )(
IPrincipal * This,
/* [retval][out] */ BSTR *pGroup);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GroupId )(
IPrincipal * This,
/* [in] */ BSTR group);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RunLevel )(
IPrincipal * This,
/* [retval][out] */ TASK_RUNLEVEL_TYPE *pRunLevel);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RunLevel )(
IPrincipal * This,
/* [in] */ TASK_RUNLEVEL_TYPE runLevel);
END_INTERFACE
} IPrincipalVtbl;
@@ -0,0 +1,130 @@
typedef struct IRegisteredTaskVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IRegisteredTask * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IRegisteredTask * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IRegisteredTask * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
__RPC__in IRegisteredTask * This,
/* [out] */ __RPC__out UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
__RPC__in IRegisteredTask * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
__RPC__in IRegisteredTask * This,
/* [in] */ __RPC__in REFIID riid,
/* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
/* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IRegisteredTask * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
__RPC__in IRegisteredTask * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pName);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )(
__RPC__in IRegisteredTask * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pPath);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )(
__RPC__in IRegisteredTask * This,
/* [retval][out] */ __RPC__out TASK_STATE *pState);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )(
__RPC__in IRegisteredTask * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pEnabled);
/* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )(
__RPC__in IRegisteredTask * This,
VARIANT_BOOL enabled);
/* [id] */ HRESULT ( STDMETHODCALLTYPE *Run )(
__RPC__in IRegisteredTask * This,
/* [in] */ VARIANT params,
/* [retval][out] */ __RPC__deref_out_opt IRunningTask **ppRunningTask);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RunEx )(
__RPC__in IRegisteredTask * This,
/* [in] */ VARIANT params,
/* [in] */ LONG flags,
/* [in] */ LONG sessionID,
/* [in] */ __RPC__in BSTR user,
/* [retval][out] */ __RPC__deref_out_opt IRunningTask **ppRunningTask);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetInstances )(
__RPC__in IRegisteredTask * This,
/* [in] */ LONG flags,
/* [retval][out] */ __RPC__deref_out_opt IRunningTaskCollection **ppRunningTasks);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastRunTime )(
__RPC__in IRegisteredTask * This,
/* [retval][out] */ __RPC__out DATE *pLastRunTime);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastTaskResult )(
__RPC__in IRegisteredTask * This,
/* [retval][out] */ __RPC__out LONG *pLastTaskResult);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfMissedRuns )(
__RPC__in IRegisteredTask * This,
/* [retval][out] */ __RPC__out LONG *pNumberOfMissedRuns);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NextRunTime )(
__RPC__in IRegisteredTask * This,
/* [retval][out] */ __RPC__out DATE *pNextRunTime);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Definition )(
__RPC__in IRegisteredTask * This,
/* [retval][out] */ __RPC__deref_out_opt ITaskDefinition **ppDefinition);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Xml )(
__RPC__in IRegisteredTask * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pXml);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSecurityDescriptor )(
__RPC__in IRegisteredTask * This,
/* [in] */ LONG securityInformation,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pSddl);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSecurityDescriptor )(
__RPC__in IRegisteredTask * This,
/* [in] */ __RPC__in BSTR sddl,
/* [in] */ LONG flags);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Stop )(
__RPC__in IRegisteredTask * This,
/* [in] */ LONG flags);
/* [helpstring][hidden][restricted] */ HRESULT ( STDMETHODCALLTYPE *GetRunTimes )(
__RPC__in IRegisteredTask * This,
/* [in] */ __RPC__in const LPSYSTEMTIME pstStart,
/* [in] */ __RPC__in const LPSYSTEMTIME pstEnd,
/* [out][in] */ __RPC__inout DWORD *pCount,
/* [out] */ __RPC__deref_out_opt LPSYSTEMTIME *pRunTimes);
END_INTERFACE
} IRegisteredTaskVtbl;
@@ -0,0 +1,60 @@
typedef struct IRegisteredTaskCollectionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IRegisteredTaskCollection * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IRegisteredTaskCollection * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IRegisteredTaskCollection * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
__RPC__in IRegisteredTaskCollection * This,
/* [out] */ __RPC__out UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
__RPC__in IRegisteredTaskCollection * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
__RPC__in IRegisteredTaskCollection * This,
/* [in] */ __RPC__in REFIID riid,
/* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
/* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IRegisteredTaskCollection * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
__RPC__in IRegisteredTaskCollection * This,
/* [retval][out] */ __RPC__out LONG *pCount);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
__RPC__in IRegisteredTaskCollection * This,
/* [in] */ VARIANT index,
/* [retval][out] */ __RPC__deref_out_opt IRegisteredTask **ppRegisteredTask);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
__RPC__in IRegisteredTaskCollection * This,
/* [retval][out] */ __RPC__deref_out_opt IUnknown **ppEnum);
END_INTERFACE
} IRegisteredTaskCollectionVtbl;
@@ -0,0 +1,119 @@
typedef struct IRegistrationInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IRegistrationInfo * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IRegistrationInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IRegistrationInfo * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
IRegistrationInfo * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IRegistrationInfo * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
IRegistrationInfo * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IRegistrationInfo * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Description )(
IRegistrationInfo * This,
/* [retval][out] */ BSTR *pDescription);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Description )(
IRegistrationInfo * This,
/* [in] */ BSTR description);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Author )(
IRegistrationInfo * This,
/* [retval][out] */ BSTR *pAuthor);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Author )(
IRegistrationInfo * This,
/* [in] */ BSTR author);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )(
IRegistrationInfo * This,
/* [retval][out] */ BSTR *pVersion);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Version )(
IRegistrationInfo * This,
/* [in] */ BSTR version);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Date )(
IRegistrationInfo * This,
/* [retval][out] */ BSTR *pDate);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Date )(
IRegistrationInfo * This,
/* [in] */ BSTR date);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Documentation )(
IRegistrationInfo * This,
/* [retval][out] */ BSTR *pDocumentation);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Documentation )(
IRegistrationInfo * This,
/* [in] */ BSTR documentation);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XmlText )(
IRegistrationInfo * This,
/* [retval][out] */ BSTR *pText);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XmlText )(
IRegistrationInfo * This,
/* [in] */ BSTR text);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_URI )(
IRegistrationInfo * This,
/* [retval][out] */ BSTR *pUri);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_URI )(
IRegistrationInfo * This,
/* [in] */ BSTR uri);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecurityDescriptor )(
IRegistrationInfo * This,
/* [retval][out] */ VARIANT *pSddl);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SecurityDescriptor )(
IRegistrationInfo * This,
/* [in] */ VARIANT sddl);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Source )(
IRegistrationInfo * This,
/* [retval][out] */ BSTR *pSource);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Source )(
IRegistrationInfo * This,
/* [in] */ BSTR source);
END_INTERFACE
} IRegistrationInfoVtbl;
@@ -0,0 +1,71 @@
typedef struct IRepetitionPatternVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IRepetitionPattern * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IRepetitionPattern * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IRepetitionPattern * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
IRepetitionPattern * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IRepetitionPattern * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
IRepetitionPattern * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IRepetitionPattern * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Interval )(
IRepetitionPattern * This,
/* [retval][out] */ BSTR *pInterval);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Interval )(
IRepetitionPattern * This,
/* [in] */ BSTR interval);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Duration )(
IRepetitionPattern * This,
/* [retval][out] */ BSTR *pDuration);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Duration )(
IRepetitionPattern * This,
/* [in] */ BSTR duration);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StopAtDurationEnd )(
IRepetitionPattern * This,
/* [retval][out] */ VARIANT_BOOL *pStop);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StopAtDurationEnd )(
IRepetitionPattern * This,
/* [in] */ VARIANT_BOOL stop);
END_INTERFACE
} IRepetitionPatternVtbl;
@@ -0,0 +1,77 @@
typedef struct IRunningTaskVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IRunningTask * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IRunningTask * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IRunningTask * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
__RPC__in IRunningTask * This,
/* [out] */ __RPC__out UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
__RPC__in IRunningTask * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
__RPC__in IRunningTask * This,
/* [in] */ __RPC__in REFIID riid,
/* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
/* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IRunningTask * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
__RPC__in IRunningTask * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pName);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InstanceGuid )(
__RPC__in IRunningTask * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pGuid);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )(
__RPC__in IRunningTask * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pPath);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )(
__RPC__in IRunningTask * This,
/* [retval][out] */ __RPC__out TASK_STATE *pState);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentAction )(
__RPC__in IRunningTask * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pName);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Stop )(
__RPC__in IRunningTask * This);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Refresh )(
__RPC__in IRunningTask * This);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnginePID )(
__RPC__in IRunningTask * This,
/* [retval][out] */ __RPC__out DWORD *pPID);
END_INTERFACE
} IRunningTaskVtbl;
@@ -0,0 +1,60 @@
typedef struct IRunningTaskCollectionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IRunningTaskCollection * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IRunningTaskCollection * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IRunningTaskCollection * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
__RPC__in IRunningTaskCollection * This,
/* [out] */ __RPC__out UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
__RPC__in IRunningTaskCollection * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
__RPC__in IRunningTaskCollection * This,
/* [in] */ __RPC__in REFIID riid,
/* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
/* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IRunningTaskCollection * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
__RPC__in IRunningTaskCollection * This,
/* [retval][out] */ __RPC__out LONG *pCount);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
__RPC__in IRunningTaskCollection * This,
/* [in] */ VARIANT index,
/* [retval][out] */ __RPC__deref_out_opt IRunningTask **ppRunningTask);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
__RPC__in IRunningTaskCollection * This,
/* [retval][out] */ __RPC__deref_out_opt IUnknown **ppEnum);
END_INTERFACE
} IRunningTaskCollectionVtbl;
@@ -0,0 +1,75 @@
typedef struct IShowMessageActionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IShowMessageAction * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IShowMessageAction * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IShowMessageAction * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
IShowMessageAction * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IShowMessageAction * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
IShowMessageAction * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IShowMessageAction * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
IShowMessageAction * This,
/* [retval][out] */ BSTR *pId);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Id )(
IShowMessageAction * This,
/* [in] */ BSTR Id);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
IShowMessageAction * This,
/* [retval][out] */ TASK_ACTION_TYPE *pType);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Title )(
IShowMessageAction * This,
/* [retval][out] */ BSTR *pTitle);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Title )(
IShowMessageAction * This,
/* [in] */ BSTR title);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MessageBody )(
IShowMessageAction * This,
/* [retval][out] */ BSTR *pMessageBody);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MessageBody )(
IShowMessageAction * This,
/* [in] */ BSTR messageBody);
END_INTERFACE
} IShowMessageActionVtbl;
@@ -0,0 +1,103 @@
typedef struct ITaskDefinitionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ITaskDefinition * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ITaskDefinition * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ITaskDefinition * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
ITaskDefinition * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
ITaskDefinition * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
ITaskDefinition * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ITaskDefinition * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RegistrationInfo )(
ITaskDefinition * This,
/* [retval][out] */ IRegistrationInfo **ppRegistrationInfo);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RegistrationInfo )(
ITaskDefinition * This,
/* [in] */ IRegistrationInfo *pRegistrationInfo);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Triggers )(
ITaskDefinition * This,
/* [retval][out] */ ITriggerCollection **ppTriggers);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Triggers )(
ITaskDefinition * This,
/* [in] */ ITriggerCollection *pTriggers);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Settings )(
ITaskDefinition * This,
/* [retval][out] */ ITaskSettings **ppSettings);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Settings )(
ITaskDefinition * This,
/* [in] */ ITaskSettings *pSettings);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Data )(
ITaskDefinition * This,
/* [retval][out] */ BSTR *pData);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Data )(
ITaskDefinition * This,
/* [in] */ BSTR data);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Principal )(
ITaskDefinition * This,
/* [retval][out] */ IPrincipal **ppPrincipal);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Principal )(
ITaskDefinition * This,
/* [in] */ IPrincipal *pPrincipal);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Actions )(
ITaskDefinition * This,
/* [retval][out] */ IActionCollection **ppActions);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Actions )(
ITaskDefinition * This,
/* [in] */ IActionCollection *pActions);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XmlText )(
ITaskDefinition * This,
/* [retval][out] */ BSTR *pXml);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XmlText )(
ITaskDefinition * This,
/* [in] */ BSTR xml);
END_INTERFACE
} ITaskDefinitionVtbl;
@@ -0,0 +1,123 @@
typedef struct ITaskFolderVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in ITaskFolder * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in ITaskFolder * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in ITaskFolder * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
__RPC__in ITaskFolder * This,
/* [out] */ __RPC__out UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
__RPC__in ITaskFolder * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
__RPC__in ITaskFolder * This,
/* [in] */ __RPC__in REFIID riid,
/* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
/* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ITaskFolder * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
__RPC__in ITaskFolder * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pName);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )(
__RPC__in ITaskFolder * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pPath);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFolder )(
__RPC__in ITaskFolder * This,
__RPC__in BSTR path,
/* [retval][out] */ __RPC__deref_out_opt ITaskFolder **ppFolder);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFolders )(
__RPC__in ITaskFolder * This,
/* [in] */ LONG flags,
/* [retval][out] */ __RPC__deref_out_opt ITaskFolderCollection **ppFolders);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateFolder )(
__RPC__in ITaskFolder * This,
/* [in] */ __RPC__in BSTR subFolderName,
/* [optional][in] */ VARIANT sddl,
/* [retval][out] */ __RPC__deref_out_opt ITaskFolder **ppFolder);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteFolder )(
__RPC__in ITaskFolder * This,
__RPC__in BSTR subFolderName,
/* [in] */ LONG flags);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTask )(
__RPC__in ITaskFolder * This,
/* [in] */ __RPC__in BSTR path,
/* [retval][out] */ __RPC__deref_out_opt IRegisteredTask **ppTask);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTasks )(
__RPC__in ITaskFolder * This,
/* [in] */ LONG flags,
/* [retval][out] */ __RPC__deref_out_opt IRegisteredTaskCollection **ppTasks);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteTask )(
__RPC__in ITaskFolder * This,
/* [in] */ __RPC__in BSTR name,
/* [in] */ LONG flags);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterTask )(
__RPC__in ITaskFolder * This,
/* [in] */ __RPC__in BSTR path,
/* [in] */ __RPC__in BSTR xmlText,
/* [in] */ LONG flags,
/* [in] */ VARIANT userId,
/* [in] */ VARIANT password,
/* [in] */ TASK_LOGON_TYPE logonType,
/* [optional][in] */ VARIANT sddl,
/* [retval][out] */ __RPC__deref_out_opt IRegisteredTask **ppTask);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterTaskDefinition )(
__RPC__in ITaskFolder * This,
/* [in] */ __RPC__in BSTR path,
/* [in] */ __RPC__in_opt ITaskDefinition *pDefinition,
/* [in] */ LONG flags,
/* [in] */ VARIANT userId,
/* [in] */ VARIANT password,
/* [in] */ TASK_LOGON_TYPE logonType,
/* [optional][in] */ VARIANT sddl,
/* [retval][out] */ __RPC__deref_out_opt IRegisteredTask **ppTask);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSecurityDescriptor )(
__RPC__in ITaskFolder * This,
LONG securityInformation,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pSddl);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSecurityDescriptor )(
__RPC__in ITaskFolder * This,
/* [in] */ __RPC__in BSTR sddl,
/* [in] */ LONG flags);
END_INTERFACE
} ITaskFolderVtbl;
@@ -0,0 +1,60 @@
typedef struct ITaskFolderCollectionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in ITaskFolderCollection * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in ITaskFolderCollection * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in ITaskFolderCollection * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
__RPC__in ITaskFolderCollection * This,
/* [out] */ __RPC__out UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
__RPC__in ITaskFolderCollection * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
__RPC__in ITaskFolderCollection * This,
/* [in] */ __RPC__in REFIID riid,
/* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
/* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ITaskFolderCollection * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
__RPC__in ITaskFolderCollection * This,
/* [retval][out] */ __RPC__out LONG *pCount);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
__RPC__in ITaskFolderCollection * This,
/* [in] */ VARIANT index,
/* [retval][out] */ __RPC__deref_out_opt ITaskFolder **ppFolder);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
__RPC__in ITaskFolderCollection * This,
/* [retval][out] */ __RPC__deref_out_opt IUnknown **ppEnum);
END_INTERFACE
} ITaskFolderCollectionVtbl;
@@ -0,0 +1,73 @@
typedef struct ITaskNamedValueCollectionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ITaskNamedValueCollection * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ITaskNamedValueCollection * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ITaskNamedValueCollection * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
ITaskNamedValueCollection * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
ITaskNamedValueCollection * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
ITaskNamedValueCollection * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ITaskNamedValueCollection * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
ITaskNamedValueCollection * This,
/* [retval][out] */ long *pCount);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
ITaskNamedValueCollection * This,
/* [in] */ LONG index,
/* [retval][out] */ ITaskNamedValuePair **ppPair);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
ITaskNamedValueCollection * This,
/* [retval][out] */ IUnknown **ppEnum);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Create )(
ITaskNamedValueCollection * This,
/* [in] */ BSTR name,
/* [in] */ BSTR value,
/* [retval][out] */ ITaskNamedValuePair **ppPair);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remove )(
ITaskNamedValueCollection * This,
/* [in] */ LONG index);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )(
ITaskNamedValueCollection * This);
END_INTERFACE
} ITaskNamedValueCollectionVtbl;
@@ -0,0 +1,63 @@
typedef struct ITaskNamedValuePairVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ITaskNamedValuePair * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ITaskNamedValuePair * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ITaskNamedValuePair * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
ITaskNamedValuePair * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
ITaskNamedValuePair * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
ITaskNamedValuePair * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ITaskNamedValuePair * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
ITaskNamedValuePair * This,
/* [retval][out] */ BSTR *pName);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )(
ITaskNamedValuePair * This,
/* [in] */ BSTR name);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Value )(
ITaskNamedValuePair * This,
/* [retval][out] */ BSTR *pValue);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Value )(
ITaskNamedValuePair * This,
/* [in] */ BSTR value);
END_INTERFACE
} ITaskNamedValuePairVtbl;
@@ -0,0 +1,89 @@
typedef struct ITaskServiceVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in ITaskService * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in ITaskService * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in ITaskService * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
__RPC__in ITaskService * This,
/* [out] */ __RPC__out UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
__RPC__in ITaskService * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
__RPC__in ITaskService * This,
/* [in] */ __RPC__in REFIID riid,
/* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
/* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ITaskService * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFolder )(
__RPC__in ITaskService * This,
/* [in] */ __RPC__in BSTR path,
/* [retval][out] */ __RPC__deref_out_opt ITaskFolder **ppFolder);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetRunningTasks )(
__RPC__in ITaskService * This,
/* [in] */ LONG flags,
/* [retval][out] */ __RPC__deref_out_opt IRunningTaskCollection **ppRunningTasks);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NewTask )(
__RPC__in ITaskService * This,
/* [in] */ DWORD flags,
/* [retval][out] */ __RPC__deref_out_opt ITaskDefinition **ppDefinition);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Connect )(
__RPC__in ITaskService * This,
/* [optional][in] */ VARIANT serverName,
/* [optional][in] */ VARIANT user,
/* [optional][in] */ VARIANT domain,
/* [optional][in] */ VARIANT password);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )(
__RPC__in ITaskService * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pConnected);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TargetServer )(
__RPC__in ITaskService * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pServer);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedUser )(
__RPC__in ITaskService * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pUser);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedDomain )(
__RPC__in ITaskService * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pDomain);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HighestVersion )(
__RPC__in ITaskService * This,
/* [retval][out] */ __RPC__out DWORD *pVersion);
END_INTERFACE
} ITaskServiceVtbl;
@@ -0,0 +1,207 @@
typedef struct ITaskSettingsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ITaskSettings * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ITaskSettings * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ITaskSettings * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
ITaskSettings * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
ITaskSettings * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
ITaskSettings * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ITaskSettings * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowDemandStart )(
ITaskSettings * This,
/* [retval][out] */ VARIANT_BOOL *pAllowDemandStart);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowDemandStart )(
ITaskSettings * This,
/* [in] */ VARIANT_BOOL allowDemandStart);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RestartInterval )(
ITaskSettings * This,
/* [retval][out] */ BSTR *pRestartInterval);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RestartInterval )(
ITaskSettings * This,
/* [in] */ BSTR restartInterval);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RestartCount )(
ITaskSettings * This,
/* [retval][out] */ int *pRestartCount);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RestartCount )(
ITaskSettings * This,
/* [in] */ int restartCount);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MultipleInstances )(
ITaskSettings * This,
/* [retval][out] */ TASK_INSTANCES_POLICY *pPolicy);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MultipleInstances )(
ITaskSettings * This,
/* [in] */ TASK_INSTANCES_POLICY policy);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StopIfGoingOnBatteries )(
ITaskSettings * This,
/* [retval][out] */ VARIANT_BOOL *pStopIfOnBatteries);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StopIfGoingOnBatteries )(
ITaskSettings * This,
/* [in] */ VARIANT_BOOL stopIfOnBatteries);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisallowStartIfOnBatteries )(
ITaskSettings * This,
/* [retval][out] */ VARIANT_BOOL *pDisallowStart);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisallowStartIfOnBatteries )(
ITaskSettings * This,
/* [in] */ VARIANT_BOOL disallowStart);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowHardTerminate )(
ITaskSettings * This,
/* [retval][out] */ VARIANT_BOOL *pAllowHardTerminate);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowHardTerminate )(
ITaskSettings * This,
/* [in] */ VARIANT_BOOL allowHardTerminate);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartWhenAvailable )(
ITaskSettings * This,
/* [retval][out] */ VARIANT_BOOL *pStartWhenAvailable);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartWhenAvailable )(
ITaskSettings * This,
/* [in] */ VARIANT_BOOL startWhenAvailable);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XmlText )(
ITaskSettings * This,
/* [retval][out] */ BSTR *pText);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XmlText )(
ITaskSettings * This,
/* [in] */ BSTR text);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RunOnlyIfNetworkAvailable )(
ITaskSettings * This,
/* [retval][out] */ VARIANT_BOOL *pRunOnlyIfNetworkAvailable);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RunOnlyIfNetworkAvailable )(
ITaskSettings * This,
/* [in] */ VARIANT_BOOL runOnlyIfNetworkAvailable);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExecutionTimeLimit )(
ITaskSettings * This,
/* [retval][out] */ BSTR *pExecutionTimeLimit);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExecutionTimeLimit )(
ITaskSettings * This,
/* [in] */ BSTR executionTimeLimit);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )(
ITaskSettings * This,
/* [retval][out] */ VARIANT_BOOL *pEnabled);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )(
ITaskSettings * This,
/* [in] */ VARIANT_BOOL enabled);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DeleteExpiredTaskAfter )(
ITaskSettings * This,
/* [retval][out] */ BSTR *pExpirationDelay);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DeleteExpiredTaskAfter )(
ITaskSettings * This,
/* [in] */ BSTR expirationDelay);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Priority )(
ITaskSettings * This,
/* [retval][out] */ int *pPriority);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Priority )(
ITaskSettings * This,
/* [in] */ int priority);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compatibility )(
ITaskSettings * This,
/* [retval][out] */ TASK_COMPATIBILITY *pCompatLevel);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compatibility )(
ITaskSettings * This,
/* [in] */ TASK_COMPATIBILITY compatLevel);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hidden )(
ITaskSettings * This,
/* [retval][out] */ VARIANT_BOOL *pHidden);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Hidden )(
ITaskSettings * This,
/* [in] */ VARIANT_BOOL hidden);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IdleSettings )(
ITaskSettings * This,
/* [retval][out] */ IIdleSettings **ppIdleSettings);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IdleSettings )(
ITaskSettings * This,
/* [in] */ IIdleSettings *pIdleSettings);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RunOnlyIfIdle )(
ITaskSettings * This,
/* [retval][out] */ VARIANT_BOOL *pRunOnlyIfIdle);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RunOnlyIfIdle )(
ITaskSettings * This,
/* [in] */ VARIANT_BOOL runOnlyIfIdle);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WakeToRun )(
ITaskSettings * This,
/* [retval][out] */ VARIANT_BOOL *pWake);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WakeToRun )(
ITaskSettings * This,
/* [in] */ VARIANT_BOOL wake);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NetworkSettings )(
ITaskSettings * This,
/* [retval][out] */ INetworkSettings **ppNetworkSettings);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NetworkSettings )(
ITaskSettings * This,
/* [in] */ INetworkSettings *pNetworkSettings);
END_INTERFACE
} ITaskSettingsVtbl;
@@ -0,0 +1,99 @@
typedef struct ITriggerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ITrigger * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ITrigger * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ITrigger * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
ITrigger * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
ITrigger * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
ITrigger * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ITrigger * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
ITrigger * This,
/* [retval][out] */ TASK_TRIGGER_TYPE2 *pType);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
ITrigger * This,
/* [retval][out] */ BSTR *pId);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Id )(
ITrigger * This,
/* [in] */ BSTR id);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Repetition )(
ITrigger * This,
/* [retval][out] */ IRepetitionPattern **ppRepeat);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Repetition )(
ITrigger * This,
/* [in] */ IRepetitionPattern *pRepeat);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExecutionTimeLimit )(
ITrigger * This,
/* [retval][out] */ BSTR *pTimeLimit);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExecutionTimeLimit )(
ITrigger * This,
/* [in] */ BSTR timelimit);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartBoundary )(
ITrigger * This,
/* [retval][out] */ BSTR *pStart);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartBoundary )(
ITrigger * This,
/* [in] */ BSTR start);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndBoundary )(
ITrigger * This,
/* [retval][out] */ BSTR *pEnd);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EndBoundary )(
ITrigger * This,
/* [in] */ BSTR end);
/* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )(
ITrigger * This,
/* [retval][out] */ VARIANT_BOOL *pEnabled);
/* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )(
ITrigger * This,
/* [in] */ VARIANT_BOOL enabled);
END_INTERFACE
} ITriggerVtbl;
@@ -0,0 +1,72 @@
typedef struct ITriggerCollectionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ITriggerCollection * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ITriggerCollection * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ITriggerCollection * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
ITriggerCollection * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
ITriggerCollection * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
ITriggerCollection * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ITriggerCollection * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
ITriggerCollection * This,
/* [retval][out] */ long *pCount);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
ITriggerCollection * This,
/* [in] */ long index,
/* [retval][out] */ ITrigger **ppTrigger);
/* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
ITriggerCollection * This,
/* [retval][out] */ IUnknown **ppEnum);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Create )(
ITriggerCollection * This,
/* [in] */ TASK_TRIGGER_TYPE2 type,
/* [retval][out] */ ITrigger **ppTrigger);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remove )(
ITriggerCollection * This,
/* [in] */ VARIANT index);
/* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )(
ITriggerCollection * This);
END_INTERFACE
} ITriggerCollectionVtbl;
@@ -0,0 +1,33 @@
typedef struct IWbemObjectTextSrcVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWbemObjectTextSrc * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWbemObjectTextSrc * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWbemObjectTextSrc * This);
HRESULT ( STDMETHODCALLTYPE *GetText )(
IWbemObjectTextSrc * This,
/* [in] */ long lFlags,
/* [in] */ IWbemClassObject *pObj,
/* [in] */ ULONG uObjTextFormat,
/* [in] */ IWbemContext *pCtx,
/* [out] */ BSTR *strText);
HRESULT ( STDMETHODCALLTYPE *CreateFromText )(
IWbemObjectTextSrc * This,
/* [in] */ long lFlags,
/* [in] */ BSTR strText,
/* [in] */ ULONG uObjTextFormat,
/* [in] */ IWbemContext *pCtx,
/* [out] */ IWbemClassObject **pNewObj);
END_INTERFACE
} IWbemObjectTextSrcVtbl;
@@ -0,0 +1,321 @@
typedef struct IWebBrowser2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IWebBrowser2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IWebBrowser2 * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
__RPC__in IWebBrowser2 * This,
/* [out] */ __RPC__out UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
__RPC__in IWebBrowser2 * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
/* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IWebBrowser2 * This,
/* [annotation][in] */
DISPID dispIdMember,
/* [annotation][in] */
REFIID riid,
/* [annotation][in] */
LCID lcid,
/* [annotation][in] */
WORD wFlags,
/* [annotation][out][in] */
DISPPARAMS *pDispParams,
/* [annotation][out] */
VARIANT *pVarResult,
/* [annotation][out] */
EXCEPINFO *pExcepInfo,
/* [annotation][out] */
UINT *puArgErr);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GoBack )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GoForward )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GoHome )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GoSearch )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in BSTR URL,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *Flags,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *TargetFrameName,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *PostData,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *Headers);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Refresh )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Refresh2 )(
__RPC__in IWebBrowser2 * This,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *Level);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Stop )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Container )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TopLevelContainer )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pBool);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *Type);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Left )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out long *pl);
/* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Left )(
__RPC__in IWebBrowser2 * This,
/* [in] */ long Left);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Top )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out long *pl);
/* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Top )(
__RPC__in IWebBrowser2 * This,
/* [in] */ long Top);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out long *pl);
/* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )(
__RPC__in IWebBrowser2 * This,
/* [in] */ long Width);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out long *pl);
/* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )(
__RPC__in IWebBrowser2 * This,
/* [in] */ long Height);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LocationName )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *LocationName);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LocationURL )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *LocationURL);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Busy )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pBool);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Quit )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClientToWindow )(
__RPC__in IWebBrowser2 * This,
/* [out][in] */ __RPC__inout int *pcx,
/* [out][in] */ __RPC__inout int *pcy);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PutProperty )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in BSTR Property,
/* [in] */ VARIANT vtValue);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetProperty )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in BSTR Property,
/* [retval][out] */ __RPC__out VARIANT *pvtValue);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *Name);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HWND )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out PVOID *pHWND);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullName )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *FullName);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Path )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *Path);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pBool);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL Value);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StatusBar )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pBool);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StatusBar )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL Value);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StatusText )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *StatusText);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StatusText )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in BSTR StatusText);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToolBar )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out int *Value);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToolBar )(
__RPC__in IWebBrowser2 * This,
/* [in] */ int Value);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MenuBar )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *Value);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MenuBar )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL Value);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbFullScreen);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bFullScreen);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate2 )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in VARIANT *URL,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *Flags,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *TargetFrameName,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *PostData,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *Headers);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *QueryStatusWB )(
__RPC__in IWebBrowser2 * This,
/* [in] */ DWORD cmdID,
/* [retval][out] */ __RPC__out DWORD *pcmdf);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecWB )(
__RPC__in IWebBrowser2 * This,
/* [in] */ DWORD cmdID,
/* [in] */ DWORD cmdexecopt,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *pvaIn,
/* [unique][optional][out][in] */ __RPC__inout_opt VARIANT *pvaOut);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShowBrowserBar )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in VARIANT *pvaClsid,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *pvarShow,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *pvarSize);
/* [bindable][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ReadyState )(
__RPC__in IWebBrowser2 * This,
/* [out][retval] */ __RPC__out DWORD *plReadyState);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Offline )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbOffline);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Offline )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bOffline);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Silent )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbSilent);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Silent )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bSilent);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RegisterAsBrowser )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbRegister);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RegisterAsBrowser )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bRegister);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RegisterAsDropTarget )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbRegister);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RegisterAsDropTarget )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bRegister);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TheaterMode )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbRegister);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TheaterMode )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bRegister);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AddressBar )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *Value);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AddressBar )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL Value);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Resizable )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *Value);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Resizable )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL Value);
END_INTERFACE
} IWebBrowser2Vtbl;
@@ -0,0 +1,74 @@
typedef struct IActivationPropertiesVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IActivationProperties * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IActivationProperties * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IActivationProperties * This);
HRESULT ( STDMETHODCALLTYPE *GetUnmarshalClass )(
IActivationProperties * This,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ CLSID *pCid);
HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )(
IActivationProperties * This,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ DWORD *pSize);
HRESULT ( STDMETHODCALLTYPE *MarshalInterface )(
IActivationProperties * This,
/* [unique][in] */ IStream *pStm,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags);
HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )(
IActivationProperties * This,
/* [unique][in] */ IStream *pStm,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )(
IActivationProperties * This,
/* [unique][in] */ IStream *pStm);
HRESULT ( STDMETHODCALLTYPE *DisconnectObject )(
IActivationProperties * This,
/* [in] */ DWORD dwReserved);
HRESULT ( STDMETHODCALLTYPE *SetDestCtx )(
IActivationProperties * This,
/* [in] */ DWORD dwDestCtx);
HRESULT ( STDMETHODCALLTYPE *SetMarshalFlags )(
IActivationProperties * This,
/* [in] */ DWORD dwMarshalFlags);
HRESULT ( STDMETHODCALLTYPE *SetLocalBlob )(
IActivationProperties * This,
/* [in] */ void *blob);
HRESULT ( STDMETHODCALLTYPE *GetLocalBlob )(
IActivationProperties * This,
/* [out] */ void **blob);
END_INTERFACE
} IActivationPropertiesVtbl;
@@ -0,0 +1,38 @@
typedef struct IActivationPropertiesOutVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IActivationPropertiesOut * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IActivationPropertiesOut * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IActivationPropertiesOut * This);
HRESULT ( STDMETHODCALLTYPE *GetActivationID )(
IActivationPropertiesOut * This,
/* [out] */ GUID *pActivationID);
HRESULT ( STDMETHODCALLTYPE *GetObjectInterface )(
IActivationPropertiesOut * This,
/* [in] */ REFIID riid,
/* [in] */ DWORD actvflags,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetObjectInterfaces )(
IActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [in] */ DWORD actvflags,
/* [size_is][in] */ MULTI_QI *multiQi);
HRESULT ( STDMETHODCALLTYPE *RemoveRequestedIIDs )(
IActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [size_is][in] */ IID *rgIID);
END_INTERFACE
} IActivationPropertiesOutVtbl;
@@ -0,0 +1,64 @@
typedef struct IActivationPropertiesInVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IActivationPropertiesIn * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IActivationPropertiesIn * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IActivationPropertiesIn * This);
HRESULT ( STDMETHODCALLTYPE *GetActivationID )(
IActivationPropertiesIn * This,
/* [out] */ GUID *pActivationID);
HRESULT ( STDMETHODCALLTYPE *GetClassInfo )(
IActivationPropertiesIn * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetClsctx )(
IActivationPropertiesIn * This,
/* [out] */ DWORD *pclsctx);
HRESULT ( STDMETHODCALLTYPE *GetActivationFlags )(
IActivationPropertiesIn * This,
/* [out] */ DWORD *pactvflags);
HRESULT ( STDMETHODCALLTYPE *AddRequestedIIDs )(
IActivationPropertiesIn * This,
/* [in] */ DWORD cIfs,
/* [size_is][in] */ IID *rgIID);
HRESULT ( STDMETHODCALLTYPE *GetRequestedIIDs )(
IActivationPropertiesIn * This,
/* [out] */ ULONG *pulCount,
/* [out] */ IID **prgIID);
HRESULT ( STDMETHODCALLTYPE *DelegateGetClassObject )(
IActivationPropertiesIn * This,
/* [out] */ IActivationPropertiesOut **pActPropsOut);
HRESULT ( STDMETHODCALLTYPE *DelegateCreateInstance )(
IActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnkOuter,
/* [out] */ IActivationPropertiesOut **pActPropsOut);
HRESULT ( STDMETHODCALLTYPE *DelegateCIAndGetCF )(
IActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnkOuter,
/* [out] */ IActivationPropertiesOut **pActPropsOut,
/* [out] */ IClassFactory **ppCf);
HRESULT ( STDMETHODCALLTYPE *GetReturnActivationProperties )(
IActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnk,
/* [out] */ IActivationPropertiesOut **ppActOut);
END_INTERFACE
} IActivationPropertiesInVtbl;
@@ -0,0 +1,30 @@
typedef struct IActivationStageInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IActivationStageInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IActivationStageInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IActivationStageInfo * This);
HRESULT ( STDMETHODCALLTYPE *SetStageAndIndex )(
IActivationStageInfo * This,
/* [in] */ ACTIVATION_STAGE stage,
/* [in] */ int index);
HRESULT ( STDMETHODCALLTYPE *GetStage )(
IActivationStageInfo * This,
/* [out] */ ACTIVATION_STAGE *pstage);
HRESULT ( STDMETHODCALLTYPE *GetIndex )(
IActivationStageInfo * This,
/* [out] */ int *pindex);
END_INTERFACE
} IActivationStageInfoVtbl;
@@ -0,0 +1,47 @@
typedef struct IClassClassicInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IClassClassicInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IClassClassicInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IClassClassicInfo * This);
HRESULT ( STDMETHODCALLTYPE *GetThreadingModel )(
IClassClassicInfo * This,
/* [out] */ ThreadingModel *pthreadmodel);
HRESULT ( STDMETHODCALLTYPE *GetModulePath )(
IClassClassicInfo * This,
/* [in] */ CLSCTX clsctx,
/* [string][out] */ WCHAR **pwszDllName);
HRESULT ( STDMETHODCALLTYPE *GetImplementedClsid )(
IClassClassicInfo * This,
/* [out] */ GUID **ppguidClsid);
HRESULT ( STDMETHODCALLTYPE *GetProcess )(
IClassClassicInfo * This,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetRemoteServerName )(
IClassClassicInfo * This,
/* [out] */ WCHAR **pwszServerName);
HRESULT ( STDMETHODCALLTYPE *GetLocalServerType )(
IClassClassicInfo * This,
/* [out] */ LocalServerType *pType);
HRESULT ( STDMETHODCALLTYPE *GetSurrogateCommandLine )(
IClassClassicInfo * This,
/* [out] */ WCHAR **pwszSurrogateCommandLine);
END_INTERFACE
} IClassClassicInfoVtbl;
@@ -0,0 +1,78 @@
typedef struct IComClassInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IComClassInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IComClassInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IComClassInfo * This);
HRESULT ( STDMETHODCALLTYPE *GetConfiguredClsid )(
IComClassInfo * This,
/* [out] */ GUID **ppguidClsid);
HRESULT ( STDMETHODCALLTYPE *GetProgId )(
IComClassInfo * This,
/* [out] */ WCHAR **pwszProgid);
HRESULT ( STDMETHODCALLTYPE *GetClassName )(
IComClassInfo * This,
/* [out] */ WCHAR **pwszClassName);
HRESULT ( STDMETHODCALLTYPE *GetApplication )(
IComClassInfo * This,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetClassContext )(
IComClassInfo * This,
/* [in] */ CLSCTX clsctxFilter,
/* [out] */ CLSCTX *pclsctx);
HRESULT ( STDMETHODCALLTYPE *GetCustomActivatorCount )(
IComClassInfo * This,
/* [in] */ ACTIVATION_STAGE activationStage,
/* [out] */ ULONG *pulCount);
HRESULT ( STDMETHODCALLTYPE *GetCustomActivatorClsids )(
IComClassInfo * This,
/* [in] */ ACTIVATION_STAGE activationStage,
/* [out] */ GUID **prgguidClsid);
HRESULT ( STDMETHODCALLTYPE *GetCustomActivators )(
IComClassInfo * This,
/* [in] */ ACTIVATION_STAGE activationStage,
/* [out] */ ISystemActivator ***prgpActivator);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IComClassInfo * This,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *IsComPlusConfiguredClass )(
IComClassInfo * This,
/* [out] */ BOOL *pfComPlusConfiguredClass);
HRESULT ( STDMETHODCALLTYPE *MustRunInClientContext )(
IComClassInfo * This,
/* [out] */ BOOL *pbMustRunInClientContext);
HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )(
IComClassInfo * This,
/* [out] */ DWORD *pdwVersionMS,
/* [out] */ DWORD *pdwVersionLS);
HRESULT ( STDMETHODCALLTYPE *Lock )(
IComClassInfo * This);
HRESULT ( STDMETHODCALLTYPE *Unlock )(
IComClassInfo * This);
END_INTERFACE
} IComClassInfoVtbl;
@@ -0,0 +1,37 @@
typedef struct IContextVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IContext * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IContext * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IContext * This);
HRESULT ( STDMETHODCALLTYPE *SetProperty )(
IContext * This,
/* [in] */ REFGUID rpolicyId,
/* [in] */ CPFLAGS flags,
/* [in] */ IUnknown *pUnk);
HRESULT ( STDMETHODCALLTYPE *RemoveProperty )(
IContext * This,
/* [in] */ REFGUID rPolicyId);
HRESULT ( STDMETHODCALLTYPE *GetProperty )(
IContext * This,
/* [in] */ REFGUID rGuid,
/* [out] */ CPFLAGS *pFlags,
/* [out] */ IUnknown **ppUnk);
HRESULT ( STDMETHODCALLTYPE *EnumContextProps )(
IContext * This,
/* [out] */ IEnumContextProps **ppEnumContextProps);
END_INTERFACE
} IContextVtbl;
@@ -0,0 +1,38 @@
typedef struct IEnumContextPropsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IEnumContextProps * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IEnumContextProps * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IEnumContextProps * This);
HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumContextProps * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ ContextProperty *pContextProperties,
/* [out] */ ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
IEnumContextProps * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
IEnumContextProps * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
IEnumContextProps * This,
/* [out] */ IEnumContextProps **ppEnumContextProps);
HRESULT ( STDMETHODCALLTYPE *Count )(
IEnumContextProps * This,
/* [out] */ ULONG *pcelt);
END_INTERFACE
} IEnumContextPropsVtbl;

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