Compare commits

...

548 Commits

Author SHA1 Message Date
hakril 520fa864b8 Disable ARM64 tests until github publish ARM64 github runners 2025-03-07 15:28:54 +01:00
hakril 6c588cf723 Improve thread CONTEXT defitions + ARM64_CONTEXT 2025-03-06 10:30:00 +01:00
hakril 8eb3384fcf Change test exe to msiexec.exe + pop_proc64 force machine AMD64 with PROC_THREAD_ATTRIBUTE_MACHINE_TYPE 2025-02-14 18:52:22 +01:00
hakril b4c0223377 Fix typo in test import 2025-02-14 17:01:00 +01:00
hakril 11665c4608 More xfail for ARM64 -> @cross_heaven_gates 2025-02-14 16:52:04 +01:00
hakril 45b781b96c Still playing with xfail identification for arm64 tests 2025-02-13 20:53:03 +01:00
hakril 83af73a872 Fix tests\test_injection.py 2025-02-12 12:18:38 +01:00
hakril be935b0f68 Improve test marking 2025-02-12 10:26:41 +01:00
hakril 8a14cc5b3a Automatic xfail on python injection for ARM64 target process 2025-02-12 09:51:56 +01:00
hakril 1ad456049a Improve stubborn stability on Windows 17763 2025-02-11 18:24:46 +01:00
hakril 16e10af8d8 Testing ARM64 CI continue-on-error 2025-02-11 17:41:19 +01:00
hakril ebded59c43 More test stability for ARM64 2025-02-11 17:12:22 +01:00
hakril a418035e1e More test stability 2025-02-11 15:37:09 +01:00
hakril e3c6deeee7 Fix hang in test_getset_syswow_context on ARM64 2025-02-11 14:37:44 +01:00
hakril d4952e21ba More arm64 heaven gate NotImplementedError() 2025-02-11 14:03:35 +01:00
hakril fc0c81eb70 Fix pe parsing for section with 8bytes name 2025-02-11 10:37:00 +01:00
hakril bd52b1a5a3 More tests adaptation for arm64 2025-02-10 15:26:41 +01:00
hakril 064b22f99e Still improving tests for ARM64 2025-02-10 10:01:55 +01:00
hakril 909669321b Improve pipe tests stability / error trigger 2025-02-10 08:50:08 +01:00
hakril 405616290f Improve test_pe fixture stability 2025-02-08 19:44:39 +01:00
hakril a93c9b7f11 Fix typo 2025-02-08 19:31:45 +01:00
hakril 06b96e65d0 More NotImplementedError for ARM64 2025-02-08 13:12:05 +01:00
hakril b51a6e1808 Adding CreateRemoteThreadEx definition 2025-02-07 13:39:00 +01:00
hakril 26b42a0587 Adding ctypes_generation for PROC_THREAD_ATTRIBUTE_X 2025-02-06 22:53:42 +01:00
hakril 13f2993cf1 Fix tests for older python 2025-02-06 21:59:44 +01:00
hakril 4113d8ad3f Reactivate full intel. Check we broke nothing 2025-02-06 21:02:46 +01:00
hakril 75f1121182 more arm64 CI tests 2025-02-05 23:14:41 +01:00
hakril 5c25e333e6 Full test suite on arm64 for the lol 2025-02-05 22:57:18 +01:00
hakril 54b518ca5f More x86->arm64 limitation exploration 2025-02-05 22:52:06 +01:00
hakril d094fb8209 More limitation identification for x86 on arm64 heaven gate 2025-02-05 22:40:12 +01:00
hakril 017867d79d Fox typo 2025-02-05 22:30:51 +01:00
hakril e58d80c3c5 More raise NotImplementedError on x86 -> arm64 heaven gate 2025-02-05 22:24:40 +01:00
hakril d7ff43a829 Working on expliciting limitation of x86-on-arm64 NotImplementedError 2025-02-05 22:09:02 +01:00
hakril 013c35bf40 Improve sample\find_value.py to search in Enums 2025-02-05 22:05:58 +01:00
hakril 6a54bca39a Fix process.py simple_arm64 import 2025-02-04 20:02:43 +01:00
hakril 2a1217e7b8 Implem current_thread.teb for ARM64 + recognize ARM64 PE in pe_parse 2025-02-04 20:00:58 +01:00
hakril 6ade13d6bb Fix pytest commandline 2025-02-03 13:53:18 +01:00
hakril b1d2d5719b Improve range of arm64 testing 2025-02-03 13:47:08 +01:00
hakril 5352013a8f Fix tests/test_simple_arm64.py error when capstone is not installed 2025-02-03 13:36:32 +01:00
hakril bce15d0d3c simple_arm64.Mov(reg, reg) that redirect to Orr(reg, zero, reg) 2025-02-03 09:11:01 +01:00
hakril 1889899535 Readd RtlGetCurrentPeb lost in rebase 2025-02-02 19:28:16 +01:00
hakril 1bc7818552 Still playing with simple_arm64 2025-02-02 19:19:28 +01:00
hakril 7c96da8c75 Working on simple_arm64.py 2025-02-02 19:19:28 +01:00
hakril 458a0d0558 First implem of arm64.assemble() 2025-02-02 19:19:28 +01:00
hakril 493fe75be8 arm64: Ret() encoded \o/ time to tests functions calls 2025-02-02 19:19:28 +01:00
hakril a7b6ddedd6 Add generated sources 2025-02-02 19:19:28 +01:00
hakril e7679ecfcf [WIP] simple_arm64 + testsuite 2025-02-02 19:19:12 +01:00
hakril 4e5325c8ea Process.architecture now returns flags 2025-02-02 19:19:12 +01:00
hakril 9b5be5ffd5 more arm testing of process.architecture 2025-02-02 19:19:12 +01:00
hakril 720385d15a Still playing with process.architecture 2025-02-02 19:19:12 +01:00
hakril 2cef60377f Add some ctypes definition 2025-02-02 19:19:12 +01:00
hakril ce13bf08e3 First try at WinProcess.architecture 2025-02-02 19:19:12 +01:00
hakril 8151292042 Adding ctypes defintion associated with process & architecture 2025-02-02 19:19:12 +01:00
hakril 646e55c740 fix typo 2025-02-02 19:18:43 +01:00
hakril 00a2f1a7d6 add utils.image_file_machine_to_processor_architecture() 2025-02-02 19:18:43 +01:00
hakril 2c9a159a81 Add system.architecture & process.architecture 2025-02-02 19:18:43 +01:00
hakril ea6b7b932d arm64: more api tests 2025-02-02 19:16:24 +01:00
hakril 314cd2b862 More arm exploration of api responses 2025-02-02 19:16:24 +01:00
hakril 3a3e6bc931 improve conftest 2025-02-02 19:15:21 +01:00
hakril 234844cf12 Remove breakpoint 2025-02-02 19:15:21 +01:00
hakril 1297996725 New implem of is_wow_64(handle) 2025-02-02 19:15:21 +01:00
hakril 1a9b680fba Added some wow64 definition + created functions/syswow64.txt 2025-02-02 19:15:21 +01:00
hakril e37f87c35c Adapt test_syswow.py for arm exploration 2025-02-02 19:15:21 +01:00
hakril 6eb31e9205 [CI] more arm fun 2025-02-02 19:15:21 +01:00
hakril b22c5d6055 [CI] more arm fun 2025-02-02 19:15:18 +01:00
hakril 458774f1ac [CI] more arm64 tests 2025-02-02 19:10:34 +01:00
hakril fd00e97d80 [CI] Playing/Testing CI on Windows-ARM64 (Fix yml2) 2025-02-02 19:10:33 +01:00
hakril 533cddae97 [CI] Playing/Testing CI on Windows-ARM64 (Fix yml) 2025-02-02 19:10:33 +01:00
hakril 57076b84dd [CI] Playing/Testing CI on Windows-ARM64 2025-02-02 19:10:33 +01:00
hakril 1c498aa0e9 Trying to setup simple ARM64 CI 2025-02-02 19:09:26 +01:00
hakril 7abda41a9d Merge pull request #77 from hakril/improve_testing
Small improvments
2025-02-02 09:56:05 -08:00
hakril 3489a560fb Remove some pytest warning 2025-02-02 18:40:07 +01:00
hakril 6fd32762da Try improving CurrentProcessReadSyswow stability 2025-02-02 16:54:23 +01:00
hakril aab4fdc02d Try new handle method for CurrentProcessReadSyswow 2025-02-02 16:35:16 +01:00
hakril ff4161602c Small improvments 2025-02-02 16:29:05 +01:00
hakril 8932682ba2 Merge pull request #76 from hakril/teb_definition
TEB defintion and `Thread.teb` field
2025-02-02 07:15:21 -08:00
hakril b9d54b3212 Last fix of docstring escape + trying pytest.mark.xfail 2025-02-02 00:20:18 +01:00
hakril 60e3d4a2b2 Update .gitignore 2025-02-02 00:00:32 +01:00
hakril 88b93dd64e More CI tests for PR & double-trigger 2025-02-01 23:37:28 +01:00
hakril 8beb9fa092 Prevent double-trigger in CI 2025-02-01 23:20:42 +01:00
hakril f668288dfc Fix bad escape in some docstrings 2025-02-01 22:44:53 +01:00
hakril 43fd2b3ca4 Update timeout time in tests 2025-02-01 22:27:11 +01:00
hakril f89a24ae48 Add pytest-timeout in CI 2025-02-01 22:12:21 +01:00
hakril d7cf3e0f8b Fix CurrentThread.teb_base being a property and not a fixedproperty 2025-02-01 14:22:02 +01:00
hakril 54be297828 Trying to improve print output when stubborn call fails 2025-02-01 11:55:49 +01:00
hakril 5da27a78d2 Fix badcode in syswo64.py 2025-02-01 11:35:22 +01:00
hakril f7542e686c More teb64 fix 2025-02-01 11:34:09 +01:00
hakril 029f7cba35 More TEB syswow fix 2025-01-31 17:37:07 +01:00
hakril 36c1eb647f Fix WinThread.teb_syswow 2025-01-31 17:13:33 +01:00
hakril 4bbdb538de Add support for remote TEB + tests 2025-01-31 17:00:04 +01:00
hakril 6ccccf7e90 V1 of WinThread.teb 2025-01-31 13:46:11 +01:00
hakril d05801dd46 Regen generated_def 2025-01-31 13:46:11 +01:00
hakril e8930af3ad Restore PEB_LDR_DATA definition to precise one 2025-01-31 13:46:11 +01:00
hakril c6898a429c Add definition of TEB + tests on offset of generated ctypes 2025-01-31 13:46:11 +01:00
hakril 13c28422d4 process improv : bitness based on PVOID size + CurrentProcess.name based on GetProcessImageFileNameW + peb addr based on RtlGetCurrentPeb 2025-01-31 13:46:11 +01:00
hakril 3818bb2e3d Add V1 of ctypes_definition for TEB 2025-01-31 13:46:11 +01:00
hakril 2b64a6d316 Add definition for _TEB 2025-01-31 13:46:11 +01:00
hakril 5d7e074039 Merge pull request #73 from dariushoule/windows_store_interpreter_tweaks
Improved behavior when running under Microsoft Store python interpreters
2025-01-29 00:57:08 -08:00
hakril 929959d2ac Add pull_request as tests.yml CI trigger 2025-01-29 09:23:04 +01:00
hakril 92b3cfcb2b Adapt sample + docs for microsoft-store-python-injection 2025-01-28 19:45:36 +01:00
Darius Houle 082b13112d missed docstring* 2025-01-26 23:46:19 -07:00
Darius Houle 52859d19c4 feedback revisions 2025-01-26 23:38:50 -07:00
hakril 6d621e0716 Merge pull request #74 from hakril/improve_injection_exceptions
Improve injection error reporting
2025-01-26 10:15:46 -08:00
hakril f80c473de0 More sleep for more test stability ? 2025-01-24 10:46:13 +01:00
hakril 98abd731e4 Improve injection.perform_manual_getproc_loadlib_X with error reporting 2025-01-24 10:37:18 +01:00
hakril d0a5dc3c61 more testing 2025-01-24 10:37:18 +01:00
hakril 2644b53563 Adding error reporting for injection via k32 imports 2025-01-24 10:37:18 +01:00
hakril ba704d6525 Improve test on injection: test on suspended processes 2025-01-24 10:37:18 +01:00
hakril 42546483dd Add tests to reproduce setup/errors of #72 2025-01-24 10:37:18 +01:00
hakril 16242d3436 Merge pull request #75 from hakril/new_pebldrdata_def
Improve tests stability + new PEB_LDR_DATA definition
2025-01-24 01:36:02 -08:00
hakril f99dc61bb2 More tests fix stability 2025-01-24 09:47:50 +01:00
hakril ddc9f16e9c More tests fix 2025-01-24 09:30:23 +01:00
hakril ab4a4561a3 Trying to improve stability of test_standard_breakpoint_X_remove 2025-01-24 09:13:01 +01:00
hakril db8d782e3a Update _PEB_LDR_DATA definition with fields known since WinXP 2025-01-24 08:59:37 +01:00
Darius Houle 6715b08ed7 2 test robustness improvements, helpful message on interpreter sandbox error 2025-01-20 12:53:27 -07:00
hakril 217da0d6b1 Merge pull request #71 from hakril/more_ci_setup
Improve Test & CI
2025-01-15 14:50:59 -08:00
hakril 7c0c130eec reduce risk ok test_standard_breakpoint_remove deadlock 2025-01-15 23:36:52 +01:00
hakril 774c35d943 [CI] Trying to test on multiple windows target (2) 2025-01-15 22:59:30 +01:00
hakril b1c147dfaa [CI] Trying to test on multiple windows target 2025-01-15 22:56:42 +01:00
hakril d63731f2d3 Merge pull request #70 from hakril/more_stubborn_tests
More stubborn tests & Implem
2025-01-15 13:52:42 -08:00
hakril 99c28ac035 stubborn: add support for new PRIV_RESOLVER_INFO_17763 seen on 10.0.17763 2025-01-15 22:32:00 +01:00
hakril d6a6e6496a [CI] Test CI on windows 2019 2025-01-13 15:14:16 +01:00
hakril c66b20f0f3 Update readme links with now workflow name 2025-01-10 14:29:59 +01:00
hakril 947093cf5b Merge pull request #69 from hakril/improve_version_name
Improve `windows.system.version_name`
2025-01-10 04:37:05 -08:00
hakril 0c9c7d3f49 Improve system.versionstr + doc + reset CI to windows-latest 2025-01-10 11:41:40 +01:00
hakril 25534c87ca [fix] Trying github CI on server-2025 for test version 2025-01-10 11:26:19 +01:00
hakril 06a986b57e Trying github CI on server-2025 to test version_name 2025-01-10 11:18:21 +01:00
hakril 0a0b96a9ca Fix new version_name to unicode 2025-01-10 11:09:00 +01:00
hakril 766f1f5e0a Improving system.version_number for 10+ by taking build number into account 2025-01-10 11:01:05 +01:00
hakril 57bcbca837 Merge pull request #68 from hakril/small_improvements
Add some ctypes generation + Improve RPCClient error message & error code parsing
2025-01-08 11:21:17 -08:00
hakril 68ea3c3a02 Regenerate ctypes 2025-01-08 19:50:45 +01:00
hakril 9bd9ddbd7a Revert "[TEST] Breaking ctypes generation result for CI test purpose"
This reverts commit 1cb8ad02c9.
2025-01-08 19:40:23 +01:00
hakril d79f7c609a [CI] Fix CI 2025-01-08 19:39:12 +01:00
hakril 22672613a9 [CI] Test that ctypes_generation results can be executed 2025-01-08 19:38:23 +01:00
hakril 1cb8ad02c9 [TEST] Breaking ctypes generation result for CI test purpose 2025-01-08 19:35:25 +01:00
hakril 3428acc580 Add a test for gdef.HRESULT_FACILITY() 2025-01-08 19:33:56 +01:00
hakril ee37178bcf improve RpcClient error reporting in call() 2025-01-08 19:33:29 +01:00
hakril f2a287d818 Add some ctypes generation + HRESULT_FACILITY macro 2025-01-08 19:31:28 +01:00
hakril e69302449c Merge pull request #67 from hakril/ci_ctypes_generation
Add CI tests for ` ctypes_generation\generate.py`
2025-01-08 10:17:28 -08:00
hakril 1f86a8a1c5 Fix broken ctypes generation : duplicate define 2025-01-08 19:09:43 +01:00
hakril 2737a64fd7 Improve github actions 2025-01-08 19:07:26 +01:00
hakril 9163e981fc Add github CI to test .\ctypes_generation\generate.py 2025-01-08 18:57:21 +01:00
hakril 17d4644973 Merge pull request #66 from hakril/multiversion_localthis
Multiversion ORPC call in `RpcClient`
2025-01-08 06:51:37 -08:00
hakril 315ad8ed9e Small refactor in RPCCLient.call() 2025-01-07 19:14:33 +01:00
hakril da0f403507 Update documentation build 2025-01-07 18:29:36 +01:00
hakril 31f7d1c593 Add windows.system.display_version + update version number + doc 2025-01-07 18:23:32 +01:00
hakril 0e9edcf440 Improve AlpcClient/Server __del__ method 2025-01-07 18:23:01 +01:00
hakril 0b0b88a270 more ORPC test : windows iexplore this time 2025-01-07 18:23:01 +01:00
hakril a45ad2b48c Remove breakpoint in test_orpc_network_manager 2025-01-07 18:23:01 +01:00
hakril d535440a44 Add stubborn implementation + first orpc test based on that 2025-01-07 18:23:01 +01:00
hakril 4b034fc0fe Add RpcClient with DCOM capabilities handling multiple versions (localthis/localthat) 2025-01-07 18:23:01 +01:00
hakril c040ec368e Working on multi-version localthis handling 2025-01-07 18:23:01 +01:00
hakril 9a67dca363 Merge pull request #65 from hakril/service_handler
Service handler functions
2024-12-31 05:47:11 -08:00
hakril 9041326d82 Regen documentation 2024-12-31 11:25:05 +01:00
hakril ee2b0e11e5 update version number 2024-12-31 11:11:15 +01:00
hakril 4985f7bba5 update documentation for service 2024-12-31 11:04:10 +01:00
hakril 99d39604df Finishing samples/python_service.py 2024-12-31 10:23:08 +01:00
hakril 196d4dcac4 Add functions implemented by services in ctypes_generation 2024-12-20 09:08:01 +01:00
hakril 9c1c125931 Merge pull request #63 from hakril/fileinfo_ctypesgen
Add some func/struct associated with [Set/Get]FileInformationByHandle
2024-11-08 14:53:06 +01:00
hakril dce802e0f3 Add some func/struct associated with [GS]etFileInformationByHandle 2024-11-08 14:46:48 +01:00
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
694 changed files with 464185 additions and 110020 deletions
+128
View File
@@ -0,0 +1,128 @@
name: Pytest
on:
push:
branches:
- 'master'
pull_request:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
generate_ctypes:
runs-on: windows-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- run:
py .\ctypes_generation\generate.py
- name: Check generated code can execute
run: py -c "import windows.generated_def"
tests:
strategy:
fail-fast: false
matrix:
runs-on: [windows-2019, windows-latest]
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
# Not a real dependency : but starting tests when ctypes generation is broken is not useful
needs: generate_ctypes
timeout-minutes: 15
runs-on: ${{ matrix.runs-on }}
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 pytest-timeout capstone-windows
# Testing
- name: Testing
run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pytest --junitxml=junit/test-results.xml -s -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
# tests_arm64:
# needs: generate_ctypes
# timeout-minutes: 15
# runs-on: windows-ARM64
# continue-on-error: true
#
# strategy:
# fail-fast: false
# matrix:
# python-version: [3.11]
# python-architecture: [x86, x64, arm64]
# 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
# - python-bitness-to-test: arm64
# python-architecture: arm64
#
# steps:
# - uses: actions/checkout@v4
#
# - name: Listing python versions availables
# run: py -0
#
# - name: Testing PFW execute
# run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -c "import windows; print(windows)"
#
# - name: Arm64 pytests
# run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pytest tests -k "not test_debugger" -v -s -r fEsx
+11 -1
View File
@@ -1,4 +1,14 @@
*.pyc *.pyc
doctrees doctrees
*.inv *.inv
*.pickle *.pickle
*.ignore
*.code-workspace
.vscode/
.cache/
dist/
build/
docs/BuildDocEnv/
playground/
*egg-info/
+54 -11
View File
@@ -1,3 +1,57 @@
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: Since 0.2:
* NtStatusException is now a WindowsError * NtStatusException is now a WindowsError
@@ -26,17 +80,6 @@ Since 0.2:
* Added Debugger.detach * Added Debugger.detach
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.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
+1 -1
View File
@@ -1,4 +1,4 @@
Copyright (c) 2016, Rouault Clement Copyright (c) 2016-2024, Rouault Clement
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, Redistribution and use in source and binary forms, with or without modification,
+244 -49
View File
@@ -1,22 +1,54 @@
# PythonForWindows # 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/tests.yml/badge.svg?branch=master)](https://github.com/hakril/PythonForWindows/actions/workflows/tests.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. 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. 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. There is no external dependencies but it relies heavily on the `ctypes` module.
Let's say that the codebase evolves with my needs, my researches and my curiosity.
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.
Complete online documentation is available [here][ONLINE_DOC] 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]. 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:
If you have any issue, question, suggestion do not hesitate to contact me. - 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. 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/tests.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 ## Overview
### Processes / Threads ### Processes / Threads
@@ -39,32 +71,32 @@ You can also make some operation on threads (suspend/resume/wait/get(or set) con
>>> windows.current_process.bitness >>> windows.current_process.bitness
32 32
>>> windows.current_process.token.integrity >>> windows.current_process.token.integrity
SECURITY_MANDATORY_MEDIUM_RID(0x2000L) SECURITY_MANDATORY_MEDIUM_RID(0x2000)
>>> calc = [p for p in windows.system.processes if p.name == "calc.exe"][0] >>> proc = [p for p in windows.system.processes if p.name == "notepad.exe"][0]
>>> calc >>> proc
<WinProcess "calc.exe" pid 6960 at 0x37391f0> <WinProcess "notepad.exe" pid 16520 at 0x544e410>
>>> calc.bitness >>> proc.bitness
64 64
>>> calc.peb.modules[:3] >>> proc.peb.modules[:3]
[<RemoteLoadedModule64 "calc.exe" at 0x3671e90>, <RemoteLoadedModule64 "ntdll.dll" at 0x3671030>, <RemoteLoadedModule64 "kernel32.dll" at 0x3671080>] [<RemoteLoadedModule64 "notepad.exe" at 0x3671e90>, <RemoteLoadedModule64 "ntdll.dll" at 0x3671030>, <RemoteLoadedModule64 "kernel32.dll" at 0x3671080>]
>>> k32 = calc.peb.modules[2] >>> k32 = proc.peb.modules[2]
>>> hex(k32.pe.exports["CreateFileW"]) >>> hex(k32.pe.exports["CreateFileW"])
'0x7ffee6761550L' '0x7ffee6761550L'
>>> calc.threads[0] >>> proc.threads[0]
<WinThread 3932 owner "calc.exe" at 0x3646350> <WinThread 17688 owner "notepad.exe" at 0x53b47f0>
>>> hex(calc.threads[0].context.Rip) >>> hex(proc.threads[0].context.Rip)
'0x7ffee68b54b0L' '0x7ffee68b54b0L'
>>> calc.execute_python("import os") >>> proc.execute_python("import os")
True True
>>> calc.execute_python("exit(os.getpid() + 1)") >>> proc.execute_python("exit(os.getpid() + 1)")
# execute_python raise if process died # execute_python raise if process died
Traceback (most recent call last): Traceback (most recent call last):
... ...
WindowsError: <WinProcess "calc.exe" pid 6960 (DEAD) at 0x37391f0> died during execution of python command WindowsError: <WinProcess "notepad.exe" pid 16520 (DEAD) at 0x579f610> died during execution of python command
>>> calc >>> calc
<WinProcess "calc.exe" pid 6960 (DEAD) at 0x37391f0> <WinProcess "notepad.exe" pid 16520 (DEAD) at 0x579f610>
>>> calc.exit_code >>> calc.exit_code
6961L 16521L
``` ```
### System information ### System information
@@ -79,7 +111,7 @@ Information about the Windows computer running the script are available through
>>> windows.system.computer_name >>> windows.system.computer_name
'DESKTOP-VKUGISR' 'DESKTOP-VKUGISR'
>>> windows.system.product_type >>> windows.system.product_type
VER_NT_WORKSTATION(0x1L) VER_NT_WORKSTATION(0x1)
>>> windows.system.version >>> windows.system.version
(10, 0) (10, 0)
>>> windows.system.version_name >>> windows.system.version_name
@@ -94,6 +126,9 @@ VER_NT_WORKSTATION(0x1L)
[<WinProcess "[System Process]" pid 0 at 0x433f7d0>, <WinProcess "System" pid 4 at 0x433fd30>] [<WinProcess "[System Process]" pid 0 at 0x433f7d0>, <WinProcess "System" pid 4 at 0x433fd30>]
>>> windows.system.logicaldrives[0] >>> windows.system.logicaldrives[0]
<LogicalDrive "C:\" (DRIVE_FIXED)> <LogicalDrive "C:\" (DRIVE_FIXED)>
>>> windows.system.services[23]
<ServiceA "Appinfo" SERVICE_RUNNING(0x4)>
``` ```
### IAT Hook ### IAT Hook
@@ -113,7 +148,7 @@ but some have default values and the functions raise exception on call error (I
# Help on function VirtualAlloc in module windows.winproxy: # Help on function VirtualAlloc in module windows.winproxy:
# VirtualAlloc(lpAddress=0, dwSize=NeededParameter, flAllocationType=MEM_COMMIT(0x1000L), flProtect=PAGE_EXECUTE_READWRITE(0x40L)) # VirtualAlloc(lpAddress=0, dwSize=NeededParameter, flAllocationType=MEM_COMMIT(0x1000L), flProtect=PAGE_EXECUTE_READWRITE(0x40L))
# Errcheck: # Errcheck:
# raise Kernel32Error if result is 0 # raise WinproxyError if result is 0
# Positional arguments # Positional arguments
>>> windows.winproxy.VirtualAlloc(0, 0x1000) >>> windows.winproxy.VirtualAlloc(0, 0x1000)
@@ -145,8 +180,8 @@ File "windows\winproxy.py", line 264, in VirtualAlloc
File "windows\winproxy.py", line 133, in perform_call File "windows\winproxy.py", line 133, in perform_call
return self._cprototyped(*args) return self._cprototyped(*args)
File "windows\winproxy.py", line 59, in kernel32_error_check File "windows\winproxy.py", line 59, in kernel32_error_check
raise Kernel32Error(func_name) raise WinproxyError(func_name)
windows.winproxy.Kernel32Error: VirtualAlloc: [Error 8] Not enough storage is available to process this command. windows.winproxy.error.WinproxyError: VirtualAlloc: [Error 87] The parameter is incorrect.
""" """
``` ```
@@ -174,6 +209,39 @@ a simple x86/x64 assembler.
'\x81\xff\x00\x00\x00\x00u\x06\xc7\xc0\x01\x00\x00\x00\xc3' '\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 ### Wintrust
To easily script some signature check script, PythonForWindows implements some wrapper functions around ``wintrust.dll`` To easily script some signature check script, PythonForWindows implements some wrapper functions around ``wintrust.dll``
@@ -189,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', 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) catalogsigned=True, additionalinfo=0L)
>>> windows.wintrust.full_signature_information(r"C:\Windows\system32\python27.dll") >>> 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 ### WMI
@@ -199,10 +267,11 @@ To extract/play with even more information about the system, PythonForWindows is
```python ```python
>>> import windows >>> import windows
>>> windows.system.wmi.select >>> windows.system.wmi.select
<bound method WmiRequester.select of <windows.winobject.wmi.WmiRequester object at 0x036BA590>> <bound method WmiNamespace.select of <WmiNamespace "root\cimv2">>
>>> windows.system.wmi.select("Win32_Process", ["Name", "Handle"])[:4] >>> windows.system.wmi.select("Win32_Process")[:3]
[{'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'}] [<WmiObject instance of "Win32_Process">, <WmiObject instance of "Win32_Process">, <WmiObject instance of "Win32_Process">]# Get WMI data for current 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 = [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"] >>> wmi_cp["CommandLine"], wmi_cp["HandleCount"]
(u'"C:\\Python27\\python.exe"', 227) (u'"C:\\Python27\\python.exe"', 227)
@@ -220,7 +289,7 @@ The project also contains some wrapping classes around `_winreg` for simpler use
>>> cuuser_software >>> cuuser_software
<PyHKey "HKEY_CURRENT_USER\Software"> <PyHKey "HKEY_CURRENT_USER\Software">
>>> cuuser_software.sam >>> cuuser_software.sam
KEY_READ(0x20019L) KEY_READ(0x20019)
# Explore subkeys # Explore subkeys
>>> cuuser_software.subkeys[:3] >>> cuuser_software.subkeys[:3]
[<PyHKey "HKEY_CURRENT_USER\Software\7-Zip">, <PyHKey "HKEY_CURRENT_USER\Software\AppDataLow">, <PyHKey "HKEY_CURRENT_USER\Software\Audacity">] [<PyHKey "HKEY_CURRENT_USER\Software\7-Zip">, <PyHKey "HKEY_CURRENT_USER\Software\AppDataLow">, <PyHKey "HKEY_CURRENT_USER\Software\Audacity">]
@@ -237,6 +306,86 @@ KeyValue(name='MYQWORD', value=123456789987654321L, type=11)
[KeyValue(name='MYQWORD', value=123456789987654321L, type=11), KeyValue(name='VALUE', value=u'a_value_for_my_key', type=1)] [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-RPC
#### ALPC #### ALPC
@@ -295,28 +444,28 @@ import windows
import windows.debug import windows.debug
import windows.test import windows.test
import windows.native_exec.simple_x86 as x86 import windows.native_exec.simple_x86 as x86
import windows.generated_def as gdef
from windows.test import pop_calc_32 from windows.test import pop_proc_32
from windows.generated_def import EXCEPTION_ACCESS_VIOLATION
class MyDebugger(windows.debug.Debugger): class MyDebugger(windows.debug.Debugger):
def on_exception(self, exception): def on_exception(self, exception):
code = exception.ExceptionRecord.ExceptionCode code = exception.ExceptionRecord.ExceptionCode
addr = exception.ExceptionRecord.ExceptionAddress addr = exception.ExceptionRecord.ExceptionAddress
print("Got exception {0} at 0x{1:x}".format(code, addr)) print("Got exception {0} at 0x{1:x}".format(code, addr))
if code == EXCEPTION_ACCESS_VIOLATION: if code == gdef.EXCEPTION_ACCESS_VIOLATION:
print("Access Violation: kill target process") print("Access Violation: kill target process")
self.current_process.exit() self.current_process.exit()
calc = windows.test.pop_calc_32(dwCreationFlags=DEBUG_PROCESS) calc = windows.test.pop_proc_32(dwCreationFlags=gdef.DEBUG_PROCESS)
d = MyDebugger(calc) d = MyDebugger(calc)
calc.execute(x86.assemble("int3; mov [0x42424242], EAX; ret")) calc.execute(x86.assemble("int3; mov [0x42424242], EAX; ret"))
d.loop() d.loop()
## Ouput ## ## Ouput ##
Got exception EXCEPTION_BREAKPOINT(0x80000003L) at 0x77e13c7d Got exception EXCEPTION_BREAKPOINT(0x80000003) at 0x77e13c7d
Got exception EXCEPTION_BREAKPOINT(0x80000003L) at 0x230000 Got exception EXCEPTION_BREAKPOINT(0x80000003) at 0x230000
Got exception EXCEPTION_ACCESS_VIOLATION(0xc0000005L) at 0x230001 Got exception EXCEPTION_ACCESS_VIOLATION(0xc0000005) at 0x230001
Access Violation: kill target process Access Violation: kill target process
``` ```
@@ -375,10 +524,10 @@ print("Done!")
Code addr = 0x6a0002 Code addr = 0x6a0002
GOT AN HXBP at 0x6a0002 GOT AN HXBP at 0x6a0002
EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004L) at 0x6a0003 EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004) at 0x6a0003
EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004L) at 0x6a0004 EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004) at 0x6a0004
EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004L) at 0x6a0005 EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004) at 0x6a0005
EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004L) at 0x770c7c04 EXCEPTION !!!! Got a EXCEPTION_SINGLE_STEP(0x80000004) at 0x770c7c04
Done! Done!
``` ```
@@ -388,17 +537,63 @@ The local debugger handles
* Standard breakpoint ``int3`` * Standard breakpoint ``int3``
* Hardware Execution breakpoint ``DrX`` * 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) ### Other stuff (see doc / samples)
- Network - Network
- Services
- COM - COM
## Acknowledgments
* clmntb for his initial work on ``windows.security``
[LKD_GITHUB]: https://github.com/sogeti-esec-lab/LKD/ [LKD_GITHUB]: https://github.com/sogeti-esec-lab/LKD/
[SAMPLE_DIR]: https://github.com/hakril/PythonForWindows/tree/master/samples [SAMPLE_DIR]: https://github.com/hakril/PythonForWindows/tree/master/samples
[ONLINE_DOC]: http://hakril.github.io/PythonForWindows/ [ONLINE_DOC]: https://hakril.github.io/PythonForWindows/
[ONLINE_SAMPLE]: http://hakril.github.io/PythonForWindows/build/html/sample.html [ONLINE_SAMPLE]: https://hakril.github.io/PythonForWindows/build/html/sample.html
[ONLINE_SAMPLE_ALPC]: http://hakril.github.io/PythonForWindows/build/html/sample.html#windows-alpc [ONLINE_SAMPLE_ALPC]: https://hakril.github.io/PythonForWindows/build/html/sample.html#windows-alpc
[ONLINE_SAMPLE_RPC]: http://hakril.github.io/PythonForWindows/build/html/sample.html#windows-rpc [ONLINE_SAMPLE_RPC]: https://hakril.github.io/PythonForWindows/build/html/sample.html#windows-rpc
[ONLINE_IATHOOK]: http://hakril.github.io/PythonForWindows/build/html/iat_hook.html [ONLINE_IATHOOK]: https://hakril.github.io/PythonForWindows/build/html/iat_hook.html
+14 -4
View File
@@ -1,10 +1,20 @@
TODO: TODO:
=== CRITICAL BEFORE 0.4 === -- CRITICAL BEFORE 0.6 ? --
- Document / fix / release:
- windows.bits
- window
- Ndr:
- Handle les struct conformant imbriquees
- Handle le packing de struct specifique
====== ======
- DBG - DBG
- FIX BP API !!
- add_bp(target=XXX) vs del_bp(targets=XXX) ....
- Verif multiple bp at same place.. - Verif multiple bp at same place..
- Verif multiple pending 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 !! (bp, BP_HX, bp on only on process, bp_hx on only one thread..)
@@ -34,9 +44,8 @@ TODO:
- winobject\exception.py - winobject\exception.py
- large part could be rewritten with ctypes-generation extended-def - large part could be rewritten with ctypes-generation extended-def
- add winobject/window.py + winobject/kernobj.py to System() - add winobject/window.py
- Some test/doc on both - Some test/doc
- wintrust doc: - wintrust doc:
add : https://blogs.msdn.microsoft.com/winsdk/2016/01/05/why-cryptcatadmincalchashfromfilehandle-fails-with-a-seemingly-unexpected-error-code/ add : https://blogs.msdn.microsoft.com/winsdk/2016/01/05/why-cryptcatadmincalchashfromfilehandle-fails-with-a-seemingly-unexpected-error-code/
@@ -54,6 +63,7 @@ TODO:
Documentation Documentation
* verif samples * verif samples
* windows.bits * windows.bits
- Document change in CurrentProcess read/write memory behavior ?
RESSOURCE RESSOURCE
* read http://www.codeproject.com/Articles/18975/Listing-Used-Files * read http://www.codeproject.com/Articles/18975/Listing-Used-Files
+14 -7
View File
@@ -9,10 +9,13 @@ from simpleparser import *
class WinComParser(Parser): class WinComParser(Parser):
PARAM_INFO = ["__RPC__deref_out", "__RPC__in", "__RPC__deref_out_opt", "__RPC__out", "__RPC__in_opt", 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", "__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"] "__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", 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", "__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"] "__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): def __init__(self, data):
# data = self.initial_processing(data) # data = self.initial_processing(data)
@@ -34,9 +37,13 @@ class WinComParser(Parser):
if ign.value in self.PARAM_INFO_WITH_VALUE: if ign.value in self.PARAM_INFO_WITH_VALUE:
# pass __RPC__in_ecount(cNames) # pass __RPC__in_ecount(cNames)
self.assert_token_type(OpenParenthesisToken) self.assert_token_type(OpenParenthesisToken)
while type(self.peek()) != CloseParenthesisToken: depth = 1
self.next_token() while depth:
self.next_token() ntok = self.next_token()
if type(ntok) == CloseParenthesisToken:
depth -= 1
elif type(ntok) == OpenParenthesisToken:
depth +=1
if self.peek() == KeywordToken("const"): if self.peek() == KeywordToken("const"):
self.next_token() self.next_token()
type_name = self.assert_token_type(NameToken) type_name = self.assert_token_type(NameToken)
@@ -77,7 +84,7 @@ class WinComParser(Parser):
args.append(self.parse_argument()) args.append(self.parse_argument())
#print("Pass <{0}>".format(p)) #print("Pass <{0}>".format(p))
self.next_token() self.next_token()
self.assert_token_type(ColonToken) self.assert_token_type(SemiColonToken)
return ret_type.value, method_name.value, args return ret_type.value, method_name.value, args
def parse(self): def parse(self):
@@ -113,7 +120,7 @@ class WinComParser(Parser):
self.next_token() self.next_token()
self.assert_token_type(StarToken) self.assert_token_type(StarToken)
typedefptr = self.assert_token_type(NameToken).value typedefptr = self.assert_token_type(NameToken).value
self.assert_token_type(ColonToken) self.assert_token_type(SemiColonToken)
res.typedefptr = typedefptr res.typedefptr = typedefptr
return res return res
+2
View File
@@ -9,6 +9,8 @@ class WinDef(object):
self.code = code self.code = code
def generate_ctypes(self): def generate_ctypes(self):
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) return """{0} = make_flag("{0}", {1})""".format(self.name, self.code)
class WinDefParser(Parser): class WinDefParser(Parser):
@@ -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,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,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;
@@ -1,25 +1,25 @@
typedef struct ICallFrameWalkerVtbl typedef struct ICallFrameWalkerVtbl
{ {
BEGIN_INTERFACE BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )( HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICallFrameWalker * This, ICallFrameWalker * This,
/* [in] */ REFIID riid, /* [in] */ REFIID riid,
/* [annotation][iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )( ULONG ( STDMETHODCALLTYPE *AddRef )(
ICallFrameWalker * This); ICallFrameWalker * This);
ULONG ( STDMETHODCALLTYPE *Release )( ULONG ( STDMETHODCALLTYPE *Release )(
ICallFrameWalker * This); ICallFrameWalker * This);
HRESULT ( STDMETHODCALLTYPE *OnWalkInterface )( HRESULT ( STDMETHODCALLTYPE *OnWalkInterface )(
ICallFrameWalker * This, ICallFrameWalker * This,
/* [in] */ REFIID iid, /* [in] */ REFIID iid,
/* [in] */ PVOID *ppvInterface, /* [in] */ PVOID *ppvInterface,
/* [in] */ BOOL fIn, /* [in] */ BOOL fIn,
/* [in] */ BOOL fOut); /* [in] */ BOOL fOut);
END_INTERFACE END_INTERFACE
} ICallFrameWalkerVtbl; } ICallFrameWalkerVtbl;
@@ -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,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,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;
@@ -0,0 +1,34 @@
typedef struct IEnumSTATSTGVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IEnumSTATSTG * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IEnumSTATSTG * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IEnumSTATSTG * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumSTATSTG * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ STATSTG *rgelt,
/* [out] */ ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
IEnumSTATSTG * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
IEnumSTATSTG * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
IEnumSTATSTG * This,
/* [out] */ IEnumSTATSTG **ppenum);
END_INTERFACE
} IEnumSTATSTGVtbl;
@@ -0,0 +1,43 @@
typedef struct IInitActivationPropertiesInVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IInitActivationPropertiesIn * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IInitActivationPropertiesIn * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IInitActivationPropertiesIn * This);
HRESULT ( STDMETHODCALLTYPE *SetClsctx )(
IInitActivationPropertiesIn * This,
/* [in] */ DWORD clsctx);
HRESULT ( STDMETHODCALLTYPE *SetActivationFlags )(
IInitActivationPropertiesIn * This,
/* [in] */ DWORD actvflags);
HRESULT ( STDMETHODCALLTYPE *SetClassInfo )(
IInitActivationPropertiesIn * This,
/* [unique][in] */ IUnknown *pUnkClassInfo);
HRESULT ( STDMETHODCALLTYPE *SetContextInfo )(
IInitActivationPropertiesIn * This,
/* [unique][in] */ IContext *pClientContext,
/* [in] */ IContext *pPrototypeContext);
HRESULT ( STDMETHODCALLTYPE *SetConstructFromStorage )(
IInitActivationPropertiesIn * This,
/* [unique][in] */ IStorage *pStorage);
HRESULT ( STDMETHODCALLTYPE *SetConstructFromFile )(
IInitActivationPropertiesIn * This,
/* [in] */ WCHAR *wszFileName,
/* [in] */ DWORD dwMode);
END_INTERFACE
} IInitActivationPropertiesInVtbl;
@@ -0,0 +1,38 @@
typedef struct IOpaqueDataInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IOpaqueDataInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IOpaqueDataInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IOpaqueDataInfo * This);
HRESULT ( STDMETHODCALLTYPE *AddOpaqueData )(
IOpaqueDataInfo * This,
/* [in] */ OpaqueData *pData);
HRESULT ( STDMETHODCALLTYPE *GetOpaqueData )(
IOpaqueDataInfo * This,
/* [in] */ REFGUID guid,
/* [out] */ OpaqueData **pData);
HRESULT ( STDMETHODCALLTYPE *DeleteOpaqueData )(
IOpaqueDataInfo * This,
/* [in] */ REFGUID guid);
HRESULT ( STDMETHODCALLTYPE *GetOpaqueDataCount )(
IOpaqueDataInfo * This,
/* [out] */ ULONG *pulCount);
HRESULT ( STDMETHODCALLTYPE *GetAllOpaqueData )(
IOpaqueDataInfo * This,
/* [out] */ OpaqueData **prgData);
END_INTERFACE
} IOpaqueDataInfoVtbl;
@@ -0,0 +1,84 @@
typedef struct IPrivActivationPropertiesInVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IPrivActivationPropertiesIn * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IPrivActivationPropertiesIn * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IPrivActivationPropertiesIn * This);
HRESULT ( STDMETHODCALLTYPE *GetActivationID )(
IPrivActivationPropertiesIn * This,
/* [out] */ GUID *pActivationID);
HRESULT ( STDMETHODCALLTYPE *GetClassInfo )(
IPrivActivationPropertiesIn * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetClsctx )(
IPrivActivationPropertiesIn * This,
/* [out] */ DWORD *pclsctx);
HRESULT ( STDMETHODCALLTYPE *GetActivationFlags )(
IPrivActivationPropertiesIn * This,
/* [out] */ DWORD *pactvflags);
HRESULT ( STDMETHODCALLTYPE *AddRequestedIIDs )(
IPrivActivationPropertiesIn * This,
/* [in] */ DWORD cIfs,
/* [size_is][in] */ IID *rgIID);
HRESULT ( STDMETHODCALLTYPE *GetRequestedIIDs )(
IPrivActivationPropertiesIn * This,
/* [out] */ ULONG *pulCount,
/* [out] */ IID **prgIID);
HRESULT ( STDMETHODCALLTYPE *DelegateGetClassObject )(
IPrivActivationPropertiesIn * This,
/* [out] */ IActivationPropertiesOut **pActPropsOut);
HRESULT ( STDMETHODCALLTYPE *DelegateCreateInstance )(
IPrivActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnkOuter,
/* [out] */ IActivationPropertiesOut **pActPropsOut);
HRESULT ( STDMETHODCALLTYPE *DelegateCIAndGetCF )(
IPrivActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnkOuter,
/* [out] */ IActivationPropertiesOut **pActPropsOut,
/* [out] */ IClassFactory **ppCf);
HRESULT ( STDMETHODCALLTYPE *GetReturnActivationProperties )(
IPrivActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnk,
/* [out] */ IActivationPropertiesOut **ppActOut);
HRESULT ( STDMETHODCALLTYPE *PrivGetReturnActivationProperties )(
IPrivActivationPropertiesIn * This,
/* [out] */ IPrivActivationPropertiesOut **ppActOut);
HRESULT ( STDMETHODCALLTYPE *GetCOMVersion )(
IPrivActivationPropertiesIn * This,
/* [out] */ COMVERSION *pVersion);
HRESULT ( STDMETHODCALLTYPE *GetClsid )(
IPrivActivationPropertiesIn * This,
/* [out] */ CLSID *pClsid);
HRESULT ( STDMETHODCALLTYPE *GetClientToken )(
IPrivActivationPropertiesIn * This,
/* [out] */ HANDLE *pHandle);
HRESULT ( STDMETHODCALLTYPE *GetDestCtx )(
IPrivActivationPropertiesIn * This,
/* [out] */ DWORD *pdwDestCtx);
END_INTERFACE
} IPrivActivationPropertiesInVtbl;
@@ -0,0 +1,58 @@
typedef struct IPrivActivationPropertiesOutVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IPrivActivationPropertiesOut * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IPrivActivationPropertiesOut * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IPrivActivationPropertiesOut * This);
HRESULT ( STDMETHODCALLTYPE *GetActivationID )(
IPrivActivationPropertiesOut * This,
/* [out] */ GUID *pActivationID);
HRESULT ( STDMETHODCALLTYPE *GetObjectInterface )(
IPrivActivationPropertiesOut * This,
/* [in] */ REFIID riid,
/* [in] */ DWORD actvflags,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetObjectInterfaces )(
IPrivActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [in] */ DWORD actvflags,
/* [size_is][in] */ MULTI_QI *multiQi);
HRESULT ( STDMETHODCALLTYPE *RemoveRequestedIIDs )(
IPrivActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [size_is][in] */ IID *rgIID);
HRESULT ( STDMETHODCALLTYPE *SetObjectInterfaces )(
IPrivActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [in] */ IID *pIID,
/* [in] */ IUnknown *pUnk);
HRESULT ( STDMETHODCALLTYPE *SetMarshalledResults )(
IPrivActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [in] */ IID *pIID,
/* [in] */ HRESULT *pHr,
/* [in] */ MInterfacePointer **pIntfData);
HRESULT ( STDMETHODCALLTYPE *GetMarshalledResults )(
IPrivActivationPropertiesOut * This,
/* [out] */ DWORD *pcIfs,
/* [out] */ IID **pIID,
/* [out] */ HRESULT **pHr,
/* [out] */ MInterfacePointer ***pIntfData);
END_INTERFACE
} IPrivActivationPropertiesOutVtbl;
@@ -0,0 +1,33 @@
typedef struct IScmReplyInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IScmReplyInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IScmReplyInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IScmReplyInfo * This);
HRESULT ( STDMETHODCALLTYPE *SetResolverInfo )(
IScmReplyInfo * This,
/* [in] */ PRIV_RESOLVER_INFO *pResolverInfo); /* Need to be cast to PRIV_RESOLVER_INFO_LEGACY on old windows */
HRESULT ( STDMETHODCALLTYPE *GetResolverInfo )(
IScmReplyInfo * This,
/* [out] */ PRIV_RESOLVER_INFO **ppResolverInfo); /* Need to be cast to PRIV_RESOLVER_INFO_LEGACY on old windows */
HRESULT ( STDMETHODCALLTYPE *SetRemoteReplyInfo )(
IScmReplyInfo * This,
/* [in] */ REMOTE_REPLY_SCM_INFO *pRemoteReply);
HRESULT ( STDMETHODCALLTYPE *GetRemoteReplyInfo )(
IScmReplyInfo * This,
/* [out] */ REMOTE_REPLY_SCM_INFO **ppRemoteReply);
END_INTERFACE
} IScmReplyInfoVtbl;
@@ -0,0 +1,33 @@
typedef struct IScmRequestInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IScmRequestInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IScmRequestInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IScmRequestInfo * This);
HRESULT ( STDMETHODCALLTYPE *SetScmInfo )(
IScmRequestInfo * This,
/* [in] */ PRIV_SCM_INFO *pScmInfo);
HRESULT ( STDMETHODCALLTYPE *GetScmInfo )(
IScmRequestInfo * This,
/* [out] */ PRIV_SCM_INFO **ppScmInfo);
HRESULT ( STDMETHODCALLTYPE *SetRemoteRequestInfo )(
IScmRequestInfo * This,
/* [in] */ REMOTE_REQUEST_SCM_INFO *pRemoteReq);
HRESULT ( STDMETHODCALLTYPE *GetRemoteRequestInfo )(
IScmRequestInfo * This,
/* [out] */ REMOTE_REQUEST_SCM_INFO **ppRemoteReq);
END_INTERFACE
} IScmRequestInfoVtbl;
@@ -0,0 +1,58 @@
typedef struct IStandardActivatorVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IStandardActivator * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IStandardActivator * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IStandardActivator * This);
HRESULT ( STDMETHODCALLTYPE *StandardGetClassObject )(
IStandardActivator * This,
/* [in] */ REFCLSID rclsid,
/* [in] */ DWORD dwClsCtx,
/* [in] */ COSERVERINFO *pServerInfo,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *StandardCreateInstance )(
IStandardActivator * This,
/* [in] */ REFCLSID Clsid,
/* [in] */ IUnknown *punkOuter,
/* [in] */ DWORD dwClsCtx,
/* [in] */ COSERVERINFO *pServerInfo,
/* [in] */ DWORD dwCount,
/* [size_is][in] */ MULTI_QI *pResults);
HRESULT ( STDMETHODCALLTYPE *StandardGetInstanceFromFile )(
IStandardActivator * This,
/* [in] */ COSERVERINFO *pServerInfo,
/* [in] */ CLSID *pclsidOverride,
/* [in] */ IUnknown *punkOuter,
/* [in] */ DWORD dwClsCtx,
/* [in] */ DWORD grfMode,
/* [in] */ OLECHAR *pwszName,
/* [in] */ DWORD dwCount,
/* [size_is][in] */ MULTI_QI *pResults);
HRESULT ( STDMETHODCALLTYPE *StandardGetInstanceFromIStorage )(
IStandardActivator * This,
/* [in] */ COSERVERINFO *pServerInfo,
/* [in] */ CLSID *pclsidOverride,
/* [in] */ IUnknown *punkOuter,
/* [in] */ DWORD dwClsCtx,
/* [in] */ IStorage *pstg,
/* [in] */ DWORD dwCount,
/* [size_is][in] */ MULTI_QI *pResults);
HRESULT ( STDMETHODCALLTYPE *Reset )(
IStandardActivator * This);
END_INTERFACE
} IStandardActivatorVtbl;
@@ -0,0 +1,28 @@
typedef struct ISystemActivatorVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ISystemActivator * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ISystemActivator * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ISystemActivator * This);
HRESULT ( STDMETHODCALLTYPE *GetClassObject )(
ISystemActivator * This,
/* [unique][in] */ IActivationPropertiesIn *pActProperties,
/* [out] */ IActivationPropertiesOut **ppActProperties);
HRESULT ( STDMETHODCALLTYPE *CreateInstance )(
ISystemActivator * This,
/* [unique][in] */ IUnknown *pUnkOuter,
/* [unique][in] */ IActivationPropertiesIn *pActProperties,
/* [out] */ IActivationPropertiesOut **ppActProperties);
END_INTERFACE
} ISystemActivatorVtbl;
@@ -0,0 +1,57 @@
// Manually crafted from windows 10
typedef struct IProxyManagerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IProxyManager * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IProxyManager * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *CreateServer )(
IProxyManager * This,
REFCLSID * rclsid,
DWORD * clsctx,
PVOID *pv);
BOOL ( STDMETHODCALLTYPE *IsConnected )(
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *LockConnection )(
IProxyManager * This,
BOOL fLock,
BOOL fLastUnlockReleases);
HRESULT ( STDMETHODCALLTYPE *Disconnect )(
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *GetConnectionStatus )(
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *ScalarDeletingDestructor )( // CPP code ? is this the real end of the Interface ?
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *SetMapping )(
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *GetMapping )(
IProxyManager * This);
IObjContext ( STDMETHODCALLTYPE *GetServerObjectContext )(
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *GetWrapperForContex )(
IProxyManager * This,
IObjContext *pCtx,
IID *riid,
void **ppv);
END_INTERFACE
} IProxyManagerVtbl;

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