From f34750e0b08bcece124790008f5cc04e4543396c Mon Sep 17 00:00:00 2001 From: Jung-Kwang Lee Date: Sun, 29 May 2022 02:47:45 +0900 Subject: [PATCH 1/2] Remove Windows SDK header files. Remove mutex header files. --- CMakeLists.txt | 6 +- README.md | 112 +- include/14.29.30133/stl/mutex | 936 +- include/143/stl/mutex | 936 +- include/_version | 2 +- .../10.0.17763.0/wdk/10.0.22000.0/forced.h | 46 +- src/crtsys.h | 134 +- src/custom/crt/fenv/fenv.c | 1 - src/custom/misc/chandler3_noexcept.cpp | 1 - src/custom/misc/chandler4_noexcept.cpp | 1 - src/custom/misc/misc.cpp | 2 - src/custom/misc/riscchandler_noexcept.cpp | 1 - src/custom/misc/winapi.cpp | 1 - .../ucrt/common/internal/winapi_thunks.cpp | 1 + src/custom/winsdk/include/um/OAIdl.h | 6066 ---- src/custom/winsdk/include/um/ObjIdl.h | 15171 ---------- src/custom/winsdk/include/um/ObjIdlbase.h | 7943 ------ src/custom/winsdk/include/um/Ole2.h | 357 - src/custom/winsdk/include/um/OleAuto.h | 1435 - src/custom/winsdk/include/um/PropIdl.h | 1319 - src/custom/winsdk/include/um/PropIdlBase.h | 1165 - src/custom/winsdk/include/um/Unknwn.h | 597 - src/custom/winsdk/include/um/Unknwnbase.h | 597 - src/custom/winsdk/include/um/cguid.h | 199 - src/custom/winsdk/include/um/combaseapi.h | 1482 - src/custom/winsdk/include/um/coml2api.h | 311 - src/custom/winsdk/include/um/crtsys/WinBase.h | 24 + src/custom/winsdk/include/um/crtsys/WinNls.h | 59 + src/custom/winsdk/include/um/crtsys/WinUser.h | 120 + src/custom/winsdk/include/um/crtsys/Windows.h | 20 + src/custom/winsdk/include/um/crtsys/commdlg.h | 4 + .../winsdk/include/um/crtsys/datetimeapi.h | 40 + src/custom/winsdk/include/um/crtsys/fileapi.h | 21 + .../include/um/crtsys/processthreadsapi.h | 21 + src/custom/winsdk/include/um/crtsys/prsht.h | 4 + .../winsdk/include/um/crtsys/stringapiset.h | 19 + .../winsdk/include/um/crtsys/winternl.h | 10 + src/custom/winsdk/include/um/msxml.h | 10122 ------- src/custom/winsdk/include/um/objbase.h | 281 - src/custom/winsdk/include/um/ole.h | 516 - src/custom/winsdk/include/um/oleidl.h | 4214 --- src/custom/winsdk/include/um/rpcnsi.h | 563 - src/custom/winsdk/include/um/rpcnsip.h | 102 - src/custom/winsdk/include/um/servprov.h | 264 - src/custom/winsdk/include/um/urlmon.h | 10567 ------- src/custom/winsdk/include/um/winnt.h | 22766 ---------------- src/custom/winsdk/include/um/winternl.h | 1017 - test/CMakeLists.txt | 32 +- 48 files changed, 501 insertions(+), 89107 deletions(-) delete mode 100644 src/custom/winsdk/include/um/OAIdl.h delete mode 100644 src/custom/winsdk/include/um/ObjIdl.h delete mode 100644 src/custom/winsdk/include/um/ObjIdlbase.h delete mode 100644 src/custom/winsdk/include/um/Ole2.h delete mode 100644 src/custom/winsdk/include/um/OleAuto.h delete mode 100644 src/custom/winsdk/include/um/PropIdl.h delete mode 100644 src/custom/winsdk/include/um/PropIdlBase.h delete mode 100644 src/custom/winsdk/include/um/Unknwn.h delete mode 100644 src/custom/winsdk/include/um/Unknwnbase.h delete mode 100644 src/custom/winsdk/include/um/cguid.h delete mode 100644 src/custom/winsdk/include/um/combaseapi.h delete mode 100644 src/custom/winsdk/include/um/coml2api.h create mode 100644 src/custom/winsdk/include/um/crtsys/WinBase.h create mode 100644 src/custom/winsdk/include/um/crtsys/WinNls.h create mode 100644 src/custom/winsdk/include/um/crtsys/WinUser.h create mode 100644 src/custom/winsdk/include/um/crtsys/Windows.h create mode 100644 src/custom/winsdk/include/um/crtsys/commdlg.h create mode 100644 src/custom/winsdk/include/um/crtsys/datetimeapi.h create mode 100644 src/custom/winsdk/include/um/crtsys/fileapi.h create mode 100644 src/custom/winsdk/include/um/crtsys/processthreadsapi.h create mode 100644 src/custom/winsdk/include/um/crtsys/prsht.h create mode 100644 src/custom/winsdk/include/um/crtsys/stringapiset.h create mode 100644 src/custom/winsdk/include/um/crtsys/winternl.h delete mode 100644 src/custom/winsdk/include/um/msxml.h delete mode 100644 src/custom/winsdk/include/um/objbase.h delete mode 100644 src/custom/winsdk/include/um/ole.h delete mode 100644 src/custom/winsdk/include/um/oleidl.h delete mode 100644 src/custom/winsdk/include/um/rpcnsi.h delete mode 100644 src/custom/winsdk/include/um/rpcnsip.h delete mode 100644 src/custom/winsdk/include/um/servprov.h delete mode 100644 src/custom/winsdk/include/um/urlmon.h delete mode 100644 src/custom/winsdk/include/um/winnt.h delete mode 100644 src/custom/winsdk/include/um/winternl.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 13bcb23..338a8d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,7 +39,7 @@ else() set(LDK_USE_RAISE_EXCEPTION OFF) set(LDK_USE_RTL_RAISE_EXCEPTION OFF) endif() -CPMAddPackage("gh:ntoskrnl7/Ldk@0.7.2") +CPMAddPackage("gh:ntoskrnl7/Ldk@0.7.3") CPMAddPackage("gh:ntoskrnl7/FindWDK#master") list(APPEND CMAKE_MODULE_PATH "${FindWDK_SOURCE_DIR}/cmake") @@ -129,10 +129,10 @@ wdk_add_library( # get_target_property(INC_DIR_TMP crtsys INCLUDE_DIRECTORIES) if (UCXXRT_ENABLED) - set_property(TARGET crtsys PROPERTY INCLUDE_DIRECTORIES "${Ldk_SOURCE_DIR}/include/Ldk;${ucxxrt_SOURCE_DIR}/src;${ucxxrt_SOURCE_DIR}/src/vcruntime;${CMAKE_CURRENT_SOURCE_DIR}/src/custom/winsdk/include/um;$(VC_IncludePath);$(WindowsSDK_IncludePath);${INC_DIR_TMP}") + set_property(TARGET crtsys PROPERTY INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/src/custom/winsdk/include/um/crtsys;${Ldk_SOURCE_DIR}/include/Ldk;${ucxxrt_SOURCE_DIR}/src;${ucxxrt_SOURCE_DIR}/src/vcruntime;$(VC_IncludePath);$(WindowsSDK_IncludePath);${INC_DIR_TMP}") target_include_directories(crtsys PRIVATE "${ucxxrt_SOURCE_DIR}") else() - set_property(TARGET crtsys PROPERTY INCLUDE_DIRECTORIES "${Ldk_SOURCE_DIR}/include/Ldk;${CMAKE_CURRENT_SOURCE_DIR}/src/custom/winsdk/include/um;$(VC_IncludePath);$(WindowsSDK_IncludePath);${INC_DIR_TMP}") + set_property(TARGET crtsys PROPERTY INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/src/custom/winsdk/include/um/crtsys;${Ldk_SOURCE_DIR}/include/Ldk;$(VC_IncludePath);$(WindowsSDK_IncludePath);${INC_DIR_TMP}") endif() target_include_directories(crtsys PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/custom/msvc/${MSVC_TOOLSET_VERSION}/include") diff --git a/README.md b/README.md index 2451c51..cab9152 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,6 @@ - [Build](#build) - [Test](#test) - [Usage](#usage) - - [CMake](#cmake) - - [CMakeLists.txt](#cmakeliststxt) - - [main.cpp](#maincpp) - [TODO](#todo) ## Overview @@ -175,6 +172,9 @@ crtsys가 장점은 아래와 같습니다. 이 프로젝트를 직접 빌드하여 lib와 include를 사용하시려면 Microsoft STL 사용을 위해서 포함 경로 설정 및 전처리기 설정 등 복잡한 사전 작업이 필요하므로 **직접 빌드하여 사용하는것보다는 [Usage](#usage)을 참고하여 CPM을 통해서 사용하시는것을 권장합니다.** +그리고 SDK와 WDK의 버전이 다르면 빌드가 실패할 가능성이 높으므로 +**가능하다면 SDK와 WDK의 버전이 같은 환경에서 빌드하는것을 권장합니다.** + 빌드 방법은 아래와 같습니다. ```Batch @@ -237,61 +237,95 @@ lib 디렉토리와 include 디렉토리를 타 프로젝트에서 사용하시 CMake를 사용하는것을 권장합니다. -### CMake +1. 프로젝트 디렉토리를 생성 후 이동하시기 바랍니다. -CMake를 사용하신다면 아래와 같이 CMakeLists.txt를 만드시기 바랍니다. + ```batch + mkdir test-project + cd test-project + ``` -#### CMakeLists.txt +2. CPM을 프로젝트 디렉토리에 다운로드 받으시기 바랍니다. -```CMake -cmake_minimum_required(VERSION 3.14 FATAL_ERROR) + ```batch + mkdir -p cmake + wget -O cmake/CPM.cmake https://github.com/cpm-cmake/CPM.cmake/releases/latest/download/get_cpm.cmake + curl -o cmake/CPM.cmake -LJO https://github.com/cpm-cmake/CPM.cmake/releases/latest/download/get_cpm.cmake + ``` -project(crtsys_test LANGUAGES C) +3. 프로젝트 디렉토리에 아래와 같은 파일을 작성해주시기 바랍니다. -include(cmake/CPM.cmake) + - 디렉토리 구조 + 📦test-project + ┣ 📂src + ┃ ┗ 📜main.cpp + ┗ 📜CMakeLists.txt -set(CRTSYS_NTL_MAIN ON) # use ntl::main -CPMAddPackage("gh:ntoskrnl7/crtsys@0.1.3") -include(${crtsys_SOURCE_DIR}/cmake/CrtSys.cmake) + - CMakeLists.txt -# add driver -crtsys_add_driver(crtsys_test main.cpp) -``` + ```CMake + cmake_minimum_required(VERSION 3.14 FATAL_ERROR) -### main.cpp + project(crtsys_test LANGUAGES C) -간단한 샘플 코드입니다. + include(cmake/CPM.cmake) -- 아래와 같이 CRTSYS_NTL_MAIN을 활성화한다면 ntl::main을 진입점으로 정의하시기 바랍니다. **(권장)** + set(CRTSYS_NTL_MAIN ON) # use ntl::main + CPMAddPackage("gh:ntoskrnl7/crtsys@0.1.4") + include(${crtsys_SOURCE_DIR}/cmake/CrtSys.cmake) - ```CMake - set(CRTSYS_NTL_MAIN ON) - ``` + # add driver + crtsys_add_driver(crtsys_test main.cpp) + ``` -- 만약 아래와 같이 CRTSYS_NTL_MAIN을 비활성화한다면 기존과 깉이 DriverEntry를 진입점으로 정의하시기 바랍니다. + - src/main.cpp - ```CMake - set(CRTSYS_NTL_MAIN OFF) - ``` + - 아래와 같이 CRTSYS_NTL_MAIN을 활성화한다면 ntl::main을 진입점으로 정의하시기 바랍니다. **(권장)** -아래는 ntl::main를 진입점으로 설정한 프로젝트의 예제 코드입니다. + ```CMake + set(CRTSYS_NTL_MAIN ON) + ``` -```C -#include -#include + - 만약 아래와 같이 CRTSYS_NTL_MAIN을 비활성화한다면 기존과 깉이 DriverEntry를 진입점으로 정의하시기 바랍니다. -ntl::status ntl::main(ntl::driver &driver, const std::wstring ®istry_path) { - std::wcout << "load (registry_path :" << registry_path << ")\n"; + ```CMake + set(CRTSYS_NTL_MAIN OFF) + ``` - // TODO + 아래는 ntl::main를 진입점으로 설정한 프로젝트의 예제 코드입니다. - driver.on_unload([registry_path]() { - std::wcout << "unload (registry_path :" << registry_path << ")\n"; - }); + ```C + #include + #include - return status::ok(); -} -``` + ntl::status ntl::main(ntl::driver &driver, const std::wstring ®istry_path) { + + std::wcout << "load (registry_path :" << registry_path << ")\n"; + + // TODO + + driver.on_unload([registry_path]() { + std::wcout << "unload (registry_path :" << registry_path << ")\n"; + }); + + return status::ok(); + } + ``` + +4. 빌드를 수행합니다. + + ```batch + cmake -S . -B build + cmake --build build + ``` + +5. 드라이버가 정상적으로 시작되고 종료되는지 확인하시기 바랍니다. + + ```batch + sc create CrtSysTest binpath= "빌드된 crtsys_test.sys의 전체 경로" displayname= "crtsys test" start= demand type= kernel + sc start CrtSysTest + sc stop CrtSysTest + sc delete CrtSysTest + ``` ## TODO diff --git a/include/14.29.30133/stl/mutex b/include/14.29.30133/stl/mutex index 2a43f59..95e42fa 100644 --- a/include/14.29.30133/stl/mutex +++ b/include/14.29.30133/stl/mutex @@ -1,936 +1,4 @@ -// mutex standard header - -// Copyright (c) Microsoft Corporation. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - #pragma once -#ifndef _MUTEX_ -#define _MUTEX_ -#include -#if _STL_COMPILER_PREPROCESSOR - -#ifdef _M_CEE_PURE -#error is not supported when compiling with /clr:pure. -#endif // _M_CEE_PURE - -#include <__msvc_chrono.hpp> -#include -#include -#include -#include -#include - -#pragma pack(push, _CRT_PACKING) -#pragma warning(push, _STL_WARNING_LEVEL) -#pragma warning(disable : _STL_DISABLED_WARNINGS) -_STL_DISABLE_CLANG_WARNINGS -#pragma push_macro("new") -#undef new - -_STD_BEGIN -// mutex and recursive_mutex are not supported under /clr -#ifndef _M_CEE -class condition_variable; -class condition_variable_any; - -class _Mutex_base { // base class for all mutex types -public: - _Mutex_base(int _Flags = 0) noexcept { - _Mtx_init_in_situ(_Mymtx(), _Flags | _Mtx_try); - } - - ~_Mutex_base() noexcept { - _Mtx_destroy_in_situ(_Mymtx()); - } - - _Mutex_base(const _Mutex_base&) = delete; - _Mutex_base& operator=(const _Mutex_base&) = delete; - - void lock() { - _Check_C_return(_Mtx_lock(_Mymtx())); - } - - _NODISCARD bool try_lock() { - const auto _Res = _Mtx_trylock(_Mymtx()); - switch (_Res) { - case _Thrd_success: - return true; - case _Thrd_busy: - return false; - default: - _Throw_C_error(_Res); - } - } - - void unlock() { - _Mtx_unlock(_Mymtx()); - } - - using native_handle_type = void*; - - _NODISCARD native_handle_type native_handle() { - return _Mtx_getconcrtcs(_Mymtx()); - } - -private: - friend condition_variable; - friend condition_variable_any; - - aligned_storage_t<_Mtx_internal_imp_size, _Mtx_internal_imp_alignment> _Mtx_storage; - - _Mtx_t _Mymtx() noexcept { // get pointer to _Mtx_internal_imp_t inside _Mtx_storage - return reinterpret_cast<_Mtx_t>(&_Mtx_storage); - } -}; - -class mutex : public _Mutex_base { // class for mutual exclusion -public: - /* constexpr */ mutex() noexcept // TRANSITION, ABI - : _Mutex_base() {} - - mutex(const mutex&) = delete; - mutex& operator=(const mutex&) = delete; -}; - -class recursive_mutex : public _Mutex_base { // class for recursive mutual exclusion -public: - recursive_mutex() : _Mutex_base(_Mtx_recursive) {} - - _NODISCARD bool try_lock() noexcept { - return _Mutex_base::try_lock(); - } - - recursive_mutex(const recursive_mutex&) = delete; - recursive_mutex& operator=(const recursive_mutex&) = delete; -}; -#endif // _M_CEE - -struct adopt_lock_t { // indicates adopt lock - explicit adopt_lock_t() = default; -}; - -struct defer_lock_t { // indicates defer lock - explicit defer_lock_t() = default; -}; - -struct try_to_lock_t { // indicates try to lock - explicit try_to_lock_t() = default; -}; - -_INLINE_VAR constexpr adopt_lock_t adopt_lock{}; -_INLINE_VAR constexpr defer_lock_t defer_lock{}; -_INLINE_VAR constexpr try_to_lock_t try_to_lock{}; - -template -class unique_lock { // whizzy class with destructor that unlocks mutex -public: - using mutex_type = _Mutex; - - unique_lock() noexcept : _Pmtx(nullptr), _Owns(false) {} - - _NODISCARD_CTOR explicit unique_lock(_Mutex& _Mtx) - : _Pmtx(_STD addressof(_Mtx)), _Owns(false) { // construct and lock - _Pmtx->lock(); - _Owns = true; - } - - _NODISCARD_CTOR unique_lock(_Mutex& _Mtx, adopt_lock_t) - : _Pmtx(_STD addressof(_Mtx)), _Owns(true) {} // construct and assume already locked - - unique_lock(_Mutex& _Mtx, defer_lock_t) noexcept - : _Pmtx(_STD addressof(_Mtx)), _Owns(false) {} // construct but don't lock - - _NODISCARD_CTOR unique_lock(_Mutex& _Mtx, try_to_lock_t) - : _Pmtx(_STD addressof(_Mtx)), _Owns(_Pmtx->try_lock()) {} // construct and try to lock - - template - _NODISCARD_CTOR unique_lock(_Mutex& _Mtx, const chrono::duration<_Rep, _Period>& _Rel_time) - : _Pmtx(_STD addressof(_Mtx)), _Owns(_Pmtx->try_lock_for(_Rel_time)) {} // construct and lock with timeout - - template - _NODISCARD_CTOR unique_lock(_Mutex& _Mtx, const chrono::time_point<_Clock, _Duration>& _Abs_time) - : _Pmtx(_STD addressof(_Mtx)), _Owns(_Pmtx->try_lock_until(_Abs_time)) { - // construct and lock with timeout -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - } - - _NODISCARD_CTOR unique_lock(_Mutex& _Mtx, const xtime* _Abs_time) - : _Pmtx(_STD addressof(_Mtx)), _Owns(false) { // try to lock until _Abs_time - _Owns = _Pmtx->try_lock_until(_Abs_time); - } - - _NODISCARD_CTOR unique_lock(unique_lock&& _Other) noexcept : _Pmtx(_Other._Pmtx), _Owns(_Other._Owns) { - _Other._Pmtx = nullptr; - _Other._Owns = false; - } - - unique_lock& operator=(unique_lock&& _Other) { - if (this != _STD addressof(_Other)) { - if (_Owns) { - _Pmtx->unlock(); - } - - _Pmtx = _Other._Pmtx; - _Owns = _Other._Owns; - _Other._Pmtx = nullptr; - _Other._Owns = false; - } - return *this; - } - - ~unique_lock() noexcept { - if (_Owns) { - _Pmtx->unlock(); - } - } - - unique_lock(const unique_lock&) = delete; - unique_lock& operator=(const unique_lock&) = delete; - - void lock() { // lock the mutex - _Validate(); - _Pmtx->lock(); - _Owns = true; - } - - _NODISCARD bool try_lock() { - _Validate(); - _Owns = _Pmtx->try_lock(); - return _Owns; - } - - template - _NODISCARD bool try_lock_for(const chrono::duration<_Rep, _Period>& _Rel_time) { - _Validate(); - _Owns = _Pmtx->try_lock_for(_Rel_time); - return _Owns; - } - - template - _NODISCARD bool try_lock_until(const chrono::time_point<_Clock, _Duration>& _Abs_time) { -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - _Validate(); - _Owns = _Pmtx->try_lock_until(_Abs_time); - return _Owns; - } - - _NODISCARD bool try_lock_until(const xtime* _Abs_time) { - _Validate(); - _Owns = _Pmtx->try_lock_until(_Abs_time); - return _Owns; - } - - void unlock() { - if (!_Pmtx || !_Owns) { - _Throw_system_error(errc::operation_not_permitted); - } - - _Pmtx->unlock(); - _Owns = false; - } - - void swap(unique_lock& _Other) noexcept { - _STD swap(_Pmtx, _Other._Pmtx); - _STD swap(_Owns, _Other._Owns); - } - - _Mutex* release() noexcept { - _Mutex* _Res = _Pmtx; - _Pmtx = nullptr; - _Owns = false; - return _Res; - } - - _NODISCARD bool owns_lock() const noexcept { - return _Owns; - } - - explicit operator bool() const noexcept { - return _Owns; - } - - _NODISCARD _Mutex* mutex() const noexcept { - return _Pmtx; - } - -private: - _Mutex* _Pmtx; - bool _Owns; - - void _Validate() const { // check if the mutex can be locked - if (!_Pmtx) { - _Throw_system_error(errc::operation_not_permitted); - } - - if (_Owns) { - _Throw_system_error(errc::resource_deadlock_would_occur); - } - } -}; - -template -void swap(unique_lock<_Mutex>& _Left, unique_lock<_Mutex>& _Right) noexcept { - _Left.swap(_Right); -} - -template -void _Lock_from_locks(const int _Target, index_sequence<_Indices...>, _LockN&... _LkN) { // lock _LkN[_Target] - int _Ignored[] = {((static_cast(_Indices) == _Target ? (void) _LkN.lock() : void()), 0)...}; - (void) _Ignored; -} - -template -bool _Try_lock_from_locks( - const int _Target, index_sequence<_Indices...>, _LockN&... _LkN) { // try to lock _LkN[_Target] - bool _Result{}; - int _Ignored[] = {((static_cast(_Indices) == _Target ? (void) (_Result = _LkN.try_lock()) : void()), 0)...}; - (void) _Ignored; - return _Result; -} - -template -void _Unlock_locks(const int _First, const int _Last, index_sequence<_Indices...>, _LockN&... _LkN) noexcept -/* terminates */ { - // unlock locks in _LkN[_First, _Last) - int _Ignored[] = { - ((_First <= static_cast(_Indices) && static_cast(_Indices) < _Last ? (void) _LkN.unlock() : void()), - 0)...}; - (void) _Ignored; -} - -template -int _Try_lock_range(const int _First, const int _Last, _LockN&... _LkN) { - using _Indices = index_sequence_for<_LockN...>; - int _Next = _First; - _TRY_BEGIN - for (; _Next != _Last; ++_Next) { - if (!_Try_lock_from_locks(_Next, _Indices{}, _LkN...)) { // try_lock failed, backout - _Unlock_locks(_First, _Next, _Indices{}, _LkN...); - return _Next; - } - } - _CATCH_ALL - _Unlock_locks(_First, _Next, _Indices{}, _LkN...); - _RERAISE; - _CATCH_END - - return -1; -} - -template -int _Try_lock1(_Lock0& _Lk0, _Lock1& _Lk1, _Lock2& _Lk2, _LockN&... _LkN) { // try to lock 3 or more locks - return _Try_lock_range(0, sizeof...(_LockN) + 3, _Lk0, _Lk1, _Lk2, _LkN...); -} - -template -int _Try_lock1(_Lock0& _Lk0, _Lock1& _Lk1) { - // try to lock 2 locks, special case for better codegen and reduced metaprogramming for common case - if (!_Lk0.try_lock()) { - return 0; - } - - _TRY_BEGIN - if (!_Lk1.try_lock()) { - _Lk0.unlock(); - return 1; - } - _CATCH_ALL - _Lk0.unlock(); - _RERAISE; - _CATCH_END - - return -1; -} - -template -_NODISCARD int try_lock(_Lock0& _Lk0, _Lock1& _Lk1, _LockN&... _LkN) { // try to lock multiple locks - return _Try_lock1(_Lk0, _Lk1, _LkN...); -} - -template -int _Lock_attempt(const int _Hard_lock, _LockN&... _LkN) { - // attempt to lock 3 or more locks, starting by locking _LkN[_Hard_lock] and trying to lock the rest - using _Indices = index_sequence_for<_LockN...>; - _Lock_from_locks(_Hard_lock, _Indices{}, _LkN...); - int _Failed = -1; - int _Backout_start = _Hard_lock; // that is, unlock _Hard_lock - - _TRY_BEGIN - _Failed = _Try_lock_range(0, _Hard_lock, _LkN...); - if (_Failed == -1) { - _Backout_start = 0; // that is, unlock [0, _Hard_lock] if the next throws - _Failed = _Try_lock_range(_Hard_lock + 1, sizeof...(_LockN), _LkN...); - if (_Failed == -1) { // we got all the locks - return -1; - } - } - _CATCH_ALL - _Unlock_locks(_Backout_start, _Hard_lock + 1, _Indices{}, _LkN...); - _RERAISE; - _CATCH_END - - // we didn't get all the locks, backout - _Unlock_locks(_Backout_start, _Hard_lock + 1, _Indices{}, _LkN...); - _STD this_thread::yield(); - return _Failed; -} - -template -void _Lock_nonmember1(_Lock0& _Lk0, _Lock1& _Lk1, _Lock2& _Lk2, _LockN&... _LkN) { - // lock 3 or more locks, without deadlock - int _Hard_lock = 0; - while (_Hard_lock != -1) { - _Hard_lock = _Lock_attempt(_Hard_lock, _Lk0, _Lk1, _Lk2, _LkN...); - } -} - -template -bool _Lock_attempt_small(_Lock0& _Lk0, _Lock1& _Lk1) { - // attempt to lock 2 locks, by first locking _Lk0, and then trying to lock _Lk1 returns whether to try again - _Lk0.lock(); - _TRY_BEGIN - if (_Lk1.try_lock()) { - return false; - } - _CATCH_ALL - _Lk0.unlock(); - _RERAISE; - _CATCH_END - - _Lk0.unlock(); - _STD this_thread::yield(); - return true; -} - -template -void _Lock_nonmember1(_Lock0& _Lk0, _Lock1& _Lk1) { - // lock 2 locks, without deadlock, special case for better codegen and reduced metaprogramming for common case - while (_Lock_attempt_small(_Lk0, _Lk1) && _Lock_attempt_small(_Lk1, _Lk0)) { // keep trying - } -} - -template -void lock(_Lock0& _Lk0, _Lock1& _Lk1, _LockN&... _LkN) { // lock multiple locks, without deadlock - _Lock_nonmember1(_Lk0, _Lk1, _LkN...); -} - -template -class _NODISCARD lock_guard { // class with destructor that unlocks a mutex -public: - using mutex_type = _Mutex; - - explicit lock_guard(_Mutex& _Mtx) : _MyMutex(_Mtx) { // construct and lock - _MyMutex.lock(); - } - - lock_guard(_Mutex& _Mtx, adopt_lock_t) : _MyMutex(_Mtx) {} // construct but don't lock - - ~lock_guard() noexcept { - _MyMutex.unlock(); - } - - lock_guard(const lock_guard&) = delete; - lock_guard& operator=(const lock_guard&) = delete; - -private: - _Mutex& _MyMutex; -}; - -#if _HAS_CXX17 -template -class _NODISCARD scoped_lock { // class with destructor that unlocks mutexes -public: - explicit scoped_lock(_Mutexes&... _Mtxes) : _MyMutexes(_Mtxes...) { // construct and lock - _STD lock(_Mtxes...); - } - - explicit scoped_lock(adopt_lock_t, _Mutexes&... _Mtxes) : _MyMutexes(_Mtxes...) {} // construct but don't lock - - ~scoped_lock() noexcept { - _STD apply([](_Mutexes&... _Mtxes) { (..., (void) _Mtxes.unlock()); }, _MyMutexes); - } - - scoped_lock(const scoped_lock&) = delete; - scoped_lock& operator=(const scoped_lock&) = delete; - -private: - tuple<_Mutexes&...> _MyMutexes; -}; - -template -class _NODISCARD scoped_lock<_Mutex> { -public: - using mutex_type = _Mutex; - - explicit scoped_lock(_Mutex& _Mtx) : _MyMutex(_Mtx) { // construct and lock - _MyMutex.lock(); - } - - explicit scoped_lock(adopt_lock_t, _Mutex& _Mtx) : _MyMutex(_Mtx) {} // construct but don't lock - - ~scoped_lock() noexcept { - _MyMutex.unlock(); - } - - scoped_lock(const scoped_lock&) = delete; - scoped_lock& operator=(const scoped_lock&) = delete; - -private: - _Mutex& _MyMutex; -}; - -template <> -class scoped_lock<> { -public: - explicit scoped_lock() {} - explicit scoped_lock(adopt_lock_t) {} - ~scoped_lock() noexcept {} - - scoped_lock(const scoped_lock&) = delete; - scoped_lock& operator=(const scoped_lock&) = delete; -}; -#endif // _HAS_CXX17 - -#ifdef _M_CEE -#define _WINDOWS_API __stdcall -#define _RENAME_WINDOWS_API(_Api) _Api##_clr -#else // ^^^ _M_CEE // !_M_CEE vvv -// #define _WINDOWS_API __declspec(dllimport) __stdcall -#define _WINDOWS_API __stdcall -#define _RENAME_WINDOWS_API(_Api) _Api -#endif // _M_CEE - -// WINBASEAPI -// BOOL -// WINAPI -// InitOnceBeginInitialize( -// _Inout_ LPINIT_ONCE lpInitOnce, -// _In_ DWORD dwFlags, -// _Out_ PBOOL fPending, -// _Outptr_opt_result_maybenull_ LPVOID* lpContext -// ); -extern "C" _NODISCARD int _WINDOWS_API _RENAME_WINDOWS_API(__std_init_once_begin_initialize)( - void** _LpInitOnce, unsigned long _DwFlags, int* _FPending, void** _LpContext) noexcept; - -// WINBASEAPI -// BOOL -// WINAPI -// InitOnceComplete( -// _Inout_ LPINIT_ONCE lpInitOnce, -// _In_ DWORD dwFlags, -// _In_opt_ LPVOID lpContext -// ); -extern "C" _NODISCARD int _WINDOWS_API _RENAME_WINDOWS_API(__std_init_once_complete)( - void** _LpInitOnce, unsigned long _DwFlags, void* _LpContext) noexcept; - -// #define RTL_RUN_ONCE_INIT_FAILED 0x00000004UL -// #define INIT_ONCE_INIT_FAILED RTL_RUN_ONCE_INIT_FAILED -_INLINE_VAR constexpr unsigned long _Init_once_init_failed = 0x4UL; - -struct _Init_once_completer { - once_flag& _Once; - unsigned long _DwFlags; - ~_Init_once_completer() { - if (_RENAME_WINDOWS_API(__std_init_once_complete)(&_Once._Opaque, _DwFlags, nullptr) == 0) { - _CSTD abort(); - } - } -}; - -template -void(call_once)(once_flag& _Once, _Fn&& _Fx, _Args&&... _Ax) noexcept( - noexcept(_STD invoke(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...))) /* strengthened */ { - // call _Fx(_Ax...) once - // parentheses against common "#define call_once(flag,func) pthread_once(flag,func)" - int _Pending; - if (_RENAME_WINDOWS_API(__std_init_once_begin_initialize)(&_Once._Opaque, 0, &_Pending, nullptr) == 0) { - _CSTD abort(); - } - - if (_Pending != 0) { - _Init_once_completer _Op{_Once, _Init_once_init_failed}; - _STD invoke(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...); - _Op._DwFlags = 0; - } -} - -#undef _WINDOWS_API -#undef _RENAME_WINDOWS_API - -// condition_variable, timed_mutex, and recursive_timed_mutex are not supported under /clr -#ifndef _M_CEE -enum class cv_status { // names for wait returns - no_timeout, - timeout -}; - -class condition_variable { // class for waiting for conditions -public: - using native_handle_type = _Cnd_t; - - condition_variable() { - _Cnd_init_in_situ(_Mycnd()); - } - - ~condition_variable() noexcept { - _Cnd_destroy_in_situ(_Mycnd()); - } - - condition_variable(const condition_variable&) = delete; - condition_variable& operator=(const condition_variable&) = delete; - - void notify_one() noexcept { // wake up one waiter - _Cnd_signal(_Mycnd()); - } - - void notify_all() noexcept { // wake up all waiters - _Cnd_broadcast(_Mycnd()); - } - - void wait(unique_lock& _Lck) { // wait for signal - // Nothing to do to comply with LWG-2135 because std::mutex lock/unlock are nothrow - _Cnd_wait(_Mycnd(), _Lck.mutex()->_Mymtx()); - } - - template - void wait(unique_lock& _Lck, _Predicate _Pred) { // wait for signal and test predicate - while (!_Pred()) { - wait(_Lck); - } - } - - template - cv_status wait_for(unique_lock& _Lck, const chrono::duration<_Rep, _Period>& _Rel_time) { - // wait for duration - if (_Rel_time <= chrono::duration<_Rep, _Period>::zero()) { - return cv_status::timeout; - } - - // TRANSITION, ABI: The standard says that we should use a steady clock, - // but unfortunately our ABI speaks struct xtime, which is relative to the system clock. - _CSTD xtime _Tgt; - const bool _Clamped = _To_xtime_10_day_clamped(_Tgt, _Rel_time); - const cv_status _Result = wait_until(_Lck, &_Tgt); - if (_Clamped) { - return cv_status::no_timeout; - } - - return _Result; - } - - template - bool wait_for(unique_lock& _Lck, const chrono::duration<_Rep, _Period>& _Rel_time, _Predicate _Pred) { - // wait for signal with timeout and check predicate - return _Wait_until1(_Lck, _To_absolute_time(_Rel_time), _Pred); - } - - template - cv_status wait_until(unique_lock& _Lck, const chrono::time_point<_Clock, _Duration>& _Abs_time) { - // wait until time point -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - for (;;) { - const auto _Now = _Clock::now(); - if (_Abs_time <= _Now) { - return cv_status::timeout; - } - - _CSTD xtime _Tgt; - (void) _To_xtime_10_day_clamped(_Tgt, _Abs_time - _Now); - const cv_status _Result = wait_until(_Lck, &_Tgt); - if (_Result == cv_status::no_timeout) { - return cv_status::no_timeout; - } - } - } - - template - bool wait_until( - unique_lock& _Lck, const chrono::time_point<_Clock, _Duration>& _Abs_time, _Predicate _Pred) { - // wait for signal with timeout and check predicate -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - return _Wait_until1(_Lck, _Abs_time, _Pred); - } - - cv_status wait_until(unique_lock& _Lck, const xtime* _Abs_time) { - // wait for signal with timeout - if (!_Mtx_current_owns(_Lck.mutex()->_Mymtx())) { - _Throw_Cpp_error(_OPERATION_NOT_PERMITTED); - } - - // Nothing to do to comply with LWG-2135 because std::mutex lock/unlock are nothrow - const int _Res = _Cnd_timedwait(_Mycnd(), _Lck.mutex()->_Mymtx(), _Abs_time); - switch (_Res) { - case _Thrd_success: - return cv_status::no_timeout; - case _Thrd_timedout: - return cv_status::timeout; - default: - _Throw_C_error(_Res); - } - } - - template - bool wait_until(unique_lock& _Lck, const xtime* _Abs_time, _Predicate _Pred) { - // wait for signal with timeout and check predicate - return _Wait_until1(_Lck, _Abs_time, _Pred); - } - - _NODISCARD native_handle_type native_handle() { - return _Mycnd(); - } - - void _Register(unique_lock& _Lck, int* _Ready) { // register this object for release at thread exit - _Cnd_register_at_thread_exit(_Mycnd(), _Lck.release()->_Mymtx(), _Ready); - } - - void _Unregister(mutex& _Mtx) { // unregister this object for release at thread exit - _Cnd_unregister_at_thread_exit(_Mtx._Mymtx()); - } - -private: - aligned_storage_t<_Cnd_internal_imp_size, _Cnd_internal_imp_alignment> _Cnd_storage; - - _Cnd_t _Mycnd() noexcept { // get pointer to _Cnd_internal_imp_t inside _Cnd_storage - return reinterpret_cast<_Cnd_t>(&_Cnd_storage); - } - - template - bool _Wait_until1(unique_lock& _Lck, const xtime* _Abs_time, _Predicate& _Pred) { - // wait for signal with timeout and check predicate - while (!_Pred()) { - if (wait_until(_Lck, _Abs_time) == cv_status::timeout) { - return _Pred(); - } - } - - return true; - } - - template - bool _Wait_until1( - unique_lock& _Lck, const chrono::time_point<_Clock, _Duration>& _Abs_time, _Predicate& _Pred) { - while (!_Pred()) { - const auto _Now = _Clock::now(); - if (_Abs_time <= _Now) { - return false; - } - - _CSTD xtime _Tgt; - const bool _Clamped = _To_xtime_10_day_clamped(_Tgt, _Abs_time - _Now); - if (wait_until(_Lck, &_Tgt) == cv_status::timeout && !_Clamped) { - return _Pred(); - } - } - - return true; - } -}; - -struct _UInt_is_zero { - const unsigned int& _UInt; - - _NODISCARD bool operator()() const { - return _UInt == 0; - } -}; - -class timed_mutex { // class for timed mutual exclusion -public: - timed_mutex() noexcept : _My_locked(0) {} - - timed_mutex(const timed_mutex&) = delete; - timed_mutex& operator=(const timed_mutex&) = delete; - - void lock() { // lock the mutex - unique_lock _Lock(_My_mutex); - while (_My_locked != 0) { - _My_cond.wait(_Lock); - } - - _My_locked = UINT_MAX; - } - - _NODISCARD bool try_lock() noexcept { // try to lock the mutex - lock_guard _Lock(_My_mutex); - if (_My_locked != 0) { - return false; - } else { - _My_locked = UINT_MAX; - return true; - } - } - - void unlock() { // unlock the mutex - { - // The lock here is necessary - lock_guard _Lock(_My_mutex); - _My_locked = 0; - } - _My_cond.notify_one(); - } - - template - _NODISCARD bool try_lock_for(const chrono::duration<_Rep, _Period>& _Rel_time) { // try to lock for duration - return try_lock_until(_To_absolute_time(_Rel_time)); - } - - template - bool _Try_lock_until(_Time _Abs_time) { // try to lock the mutex with timeout - unique_lock _Lock(_My_mutex); - if (!_My_cond.wait_until(_Lock, _Abs_time, _UInt_is_zero{_My_locked})) { - return false; - } - - _My_locked = UINT_MAX; - return true; - } - - template - _NODISCARD bool try_lock_until(const chrono::time_point<_Clock, _Duration>& _Abs_time) { - // try to lock the mutex with timeout -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - return _Try_lock_until(_Abs_time); - } - - _NODISCARD bool try_lock_until(const xtime* _Abs_time) { // try to lock the mutex with timeout - return _Try_lock_until(_Abs_time); - } - -private: - mutex _My_mutex; - condition_variable _My_cond; - unsigned int _My_locked; -}; - -class recursive_timed_mutex { // class for recursive timed mutual exclusion -public: - recursive_timed_mutex() noexcept : _My_locked(0) {} - - recursive_timed_mutex(const recursive_timed_mutex&) = delete; - recursive_timed_mutex& operator=(const recursive_timed_mutex&) = delete; - - void lock() { // lock the mutex - const thread::id _Tid = this_thread::get_id(); - - unique_lock _Lock(_My_mutex); - - if (_Tid == _My_owner) { - if (_My_locked < UINT_MAX) { - ++_My_locked; - } else { - _Throw_system_error(errc::device_or_resource_busy); - } - } else { - while (_My_locked != 0) { - _My_cond.wait(_Lock); - } - - _My_locked = 1; - _My_owner = _Tid; - } - } - - _NODISCARD bool try_lock() noexcept { // try to lock the mutex - const thread::id _Tid = this_thread::get_id(); - - lock_guard _Lock(_My_mutex); - - if (_Tid == _My_owner) { - if (_My_locked < UINT_MAX) { - ++_My_locked; - } else { - return false; - } - } else { - if (_My_locked != 0) { - return false; - } else { - _My_locked = 1; - _My_owner = _Tid; - } - } - return true; - } - - void unlock() { // unlock the mutex - bool _Do_notify = false; - - { - lock_guard _Lock(_My_mutex); - --_My_locked; - if (_My_locked == 0) { - _Do_notify = true; - _My_owner = thread::id(); - } - } - - if (_Do_notify) { - _My_cond.notify_one(); - } - } - - template - _NODISCARD bool try_lock_for(const chrono::duration<_Rep, _Period>& _Rel_time) { // try to lock for duration - return try_lock_until(_To_absolute_time(_Rel_time)); - } - - template - bool _Try_lock_until(_Time _Abs_time) { // try to lock the mutex with timeout - const thread::id _Tid = this_thread::get_id(); - - unique_lock _Lock(_My_mutex); - - if (_Tid == _My_owner) { - if (_My_locked < UINT_MAX) { - ++_My_locked; - } else { - return false; - } - } else { - if (!_My_cond.wait_until(_Lock, _Abs_time, _UInt_is_zero{_My_locked})) { - return false; - } - - _My_locked = 1; - _My_owner = _Tid; - } - return true; - } - - template - _NODISCARD bool try_lock_until(const chrono::time_point<_Clock, _Duration>& _Abs_time) { - // try to lock the mutex with timeout -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - return _Try_lock_until(_Abs_time); - } - - _NODISCARD bool try_lock_until(const xtime* _Abs_time) { // try to lock the mutex with timeout - return _Try_lock_until(_Abs_time); - } -private: - mutex _My_mutex; - condition_variable _My_cond; - unsigned int _My_locked; - thread::id _My_owner; -}; -#endif // _M_CEE -_STD_END -#pragma pop_macro("new") -_STL_RESTORE_CLANG_WARNINGS -#pragma warning(pop) -#pragma pack(pop) -#endif // _STL_COMPILER_PREPROCESSOR -#endif // _MUTEX_ +#define dllimport +#include <../include/mutex> \ No newline at end of file diff --git a/include/143/stl/mutex b/include/143/stl/mutex index 614f3e6..95e42fa 100644 --- a/include/143/stl/mutex +++ b/include/143/stl/mutex @@ -1,936 +1,4 @@ -// mutex standard header - -// Copyright (c) Microsoft Corporation. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - #pragma once -#ifndef _MUTEX_ -#define _MUTEX_ -#include -#if _STL_COMPILER_PREPROCESSOR - -#ifdef _M_CEE_PURE -#error is not supported when compiling with /clr:pure. -#endif // _M_CEE_PURE - -#include -#include -#include -#include -#include -#include - -#pragma pack(push, _CRT_PACKING) -#pragma warning(push, _STL_WARNING_LEVEL) -#pragma warning(disable : _STL_DISABLED_WARNINGS) -_STL_DISABLE_CLANG_WARNINGS -#pragma push_macro("new") -#undef new - -_STD_BEGIN -// mutex and recursive_mutex are not supported under /clr -#ifndef _M_CEE -class condition_variable; -class condition_variable_any; - -class _Mutex_base { // base class for all mutex types -public: - _Mutex_base(int _Flags = 0) noexcept { - _Mtx_init_in_situ(_Mymtx(), _Flags | _Mtx_try); - } - - ~_Mutex_base() noexcept { - _Mtx_destroy_in_situ(_Mymtx()); - } - - _Mutex_base(const _Mutex_base&) = delete; - _Mutex_base& operator=(const _Mutex_base&) = delete; - - void lock() { - _Check_C_return(_Mtx_lock(_Mymtx())); - } - - _NODISCARD bool try_lock() { - const auto _Res = _Mtx_trylock(_Mymtx()); - switch (_Res) { - case _Thrd_success: - return true; - case _Thrd_busy: - return false; - default: - _Throw_C_error(_Res); - } - } - - void unlock() { - _Mtx_unlock(_Mymtx()); - } - - using native_handle_type = void*; - - _NODISCARD native_handle_type native_handle() { - return _Mtx_getconcrtcs(_Mymtx()); - } - -private: - friend condition_variable; - friend condition_variable_any; - - aligned_storage_t<_Mtx_internal_imp_size, _Mtx_internal_imp_alignment> _Mtx_storage; - - _Mtx_t _Mymtx() noexcept { // get pointer to _Mtx_internal_imp_t inside _Mtx_storage - return reinterpret_cast<_Mtx_t>(&_Mtx_storage); - } -}; - -class mutex : public _Mutex_base { // class for mutual exclusion -public: - /* constexpr */ mutex() noexcept // TRANSITION, ABI - : _Mutex_base() {} - - mutex(const mutex&) = delete; - mutex& operator=(const mutex&) = delete; -}; - -class recursive_mutex : public _Mutex_base { // class for recursive mutual exclusion -public: - recursive_mutex() : _Mutex_base(_Mtx_recursive) {} - - _NODISCARD bool try_lock() noexcept { - return _Mutex_base::try_lock(); - } - - recursive_mutex(const recursive_mutex&) = delete; - recursive_mutex& operator=(const recursive_mutex&) = delete; -}; -#endif // _M_CEE - -struct adopt_lock_t { // indicates adopt lock - explicit adopt_lock_t() = default; -}; - -struct defer_lock_t { // indicates defer lock - explicit defer_lock_t() = default; -}; - -struct try_to_lock_t { // indicates try to lock - explicit try_to_lock_t() = default; -}; - -_INLINE_VAR constexpr adopt_lock_t adopt_lock{}; -_INLINE_VAR constexpr defer_lock_t defer_lock{}; -_INLINE_VAR constexpr try_to_lock_t try_to_lock{}; - -template -class unique_lock { // whizzy class with destructor that unlocks mutex -public: - using mutex_type = _Mutex; - - unique_lock() noexcept : _Pmtx(nullptr), _Owns(false) {} - - _NODISCARD_CTOR explicit unique_lock(_Mutex& _Mtx) - : _Pmtx(_STD addressof(_Mtx)), _Owns(false) { // construct and lock - _Pmtx->lock(); - _Owns = true; - } - - _NODISCARD_CTOR unique_lock(_Mutex& _Mtx, adopt_lock_t) - : _Pmtx(_STD addressof(_Mtx)), _Owns(true) {} // construct and assume already locked - - unique_lock(_Mutex& _Mtx, defer_lock_t) noexcept - : _Pmtx(_STD addressof(_Mtx)), _Owns(false) {} // construct but don't lock - - _NODISCARD_CTOR unique_lock(_Mutex& _Mtx, try_to_lock_t) - : _Pmtx(_STD addressof(_Mtx)), _Owns(_Pmtx->try_lock()) {} // construct and try to lock - - template - _NODISCARD_CTOR unique_lock(_Mutex& _Mtx, const chrono::duration<_Rep, _Period>& _Rel_time) - : _Pmtx(_STD addressof(_Mtx)), _Owns(_Pmtx->try_lock_for(_Rel_time)) {} // construct and lock with timeout - - template - _NODISCARD_CTOR unique_lock(_Mutex& _Mtx, const chrono::time_point<_Clock, _Duration>& _Abs_time) - : _Pmtx(_STD addressof(_Mtx)), _Owns(_Pmtx->try_lock_until(_Abs_time)) { - // construct and lock with timeout -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - } - - _NODISCARD_CTOR unique_lock(_Mutex& _Mtx, const xtime* _Abs_time) - : _Pmtx(_STD addressof(_Mtx)), _Owns(false) { // try to lock until _Abs_time - _Owns = _Pmtx->try_lock_until(_Abs_time); - } - - _NODISCARD_CTOR unique_lock(unique_lock&& _Other) noexcept : _Pmtx(_Other._Pmtx), _Owns(_Other._Owns) { - _Other._Pmtx = nullptr; - _Other._Owns = false; - } - - unique_lock& operator=(unique_lock&& _Other) { - if (this != _STD addressof(_Other)) { - if (_Owns) { - _Pmtx->unlock(); - } - - _Pmtx = _Other._Pmtx; - _Owns = _Other._Owns; - _Other._Pmtx = nullptr; - _Other._Owns = false; - } - return *this; - } - - ~unique_lock() noexcept { - if (_Owns) { - _Pmtx->unlock(); - } - } - - unique_lock(const unique_lock&) = delete; - unique_lock& operator=(const unique_lock&) = delete; - - void lock() { // lock the mutex - _Validate(); - _Pmtx->lock(); - _Owns = true; - } - - _NODISCARD bool try_lock() { - _Validate(); - _Owns = _Pmtx->try_lock(); - return _Owns; - } - - template - _NODISCARD bool try_lock_for(const chrono::duration<_Rep, _Period>& _Rel_time) { - _Validate(); - _Owns = _Pmtx->try_lock_for(_Rel_time); - return _Owns; - } - - template - _NODISCARD bool try_lock_until(const chrono::time_point<_Clock, _Duration>& _Abs_time) { -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - _Validate(); - _Owns = _Pmtx->try_lock_until(_Abs_time); - return _Owns; - } - - _NODISCARD bool try_lock_until(const xtime* _Abs_time) { - _Validate(); - _Owns = _Pmtx->try_lock_until(_Abs_time); - return _Owns; - } - - void unlock() { - if (!_Pmtx || !_Owns) { - _Throw_system_error(errc::operation_not_permitted); - } - - _Pmtx->unlock(); - _Owns = false; - } - - void swap(unique_lock& _Other) noexcept { - _STD swap(_Pmtx, _Other._Pmtx); - _STD swap(_Owns, _Other._Owns); - } - - _Mutex* release() noexcept { - _Mutex* _Res = _Pmtx; - _Pmtx = nullptr; - _Owns = false; - return _Res; - } - - _NODISCARD bool owns_lock() const noexcept { - return _Owns; - } - - explicit operator bool() const noexcept { - return _Owns; - } - - _NODISCARD _Mutex* mutex() const noexcept { - return _Pmtx; - } - -private: - _Mutex* _Pmtx; - bool _Owns; - - void _Validate() const { // check if the mutex can be locked - if (!_Pmtx) { - _Throw_system_error(errc::operation_not_permitted); - } - - if (_Owns) { - _Throw_system_error(errc::resource_deadlock_would_occur); - } - } -}; - -template -void swap(unique_lock<_Mutex>& _Left, unique_lock<_Mutex>& _Right) noexcept { - _Left.swap(_Right); -} - -template -void _Lock_from_locks(const int _Target, index_sequence<_Indices...>, _LockN&... _LkN) { // lock _LkN[_Target] - int _Ignored[] = {((static_cast(_Indices) == _Target ? (void) _LkN.lock() : void()), 0)...}; - (void) _Ignored; -} - -template -bool _Try_lock_from_locks( - const int _Target, index_sequence<_Indices...>, _LockN&... _LkN) { // try to lock _LkN[_Target] - bool _Result{}; - int _Ignored[] = {((static_cast(_Indices) == _Target ? (void) (_Result = _LkN.try_lock()) : void()), 0)...}; - (void) _Ignored; - return _Result; -} - -template -void _Unlock_locks(const int _First, const int _Last, index_sequence<_Indices...>, _LockN&... _LkN) noexcept -/* terminates */ { - // unlock locks in _LkN[_First, _Last) - int _Ignored[] = { - ((_First <= static_cast(_Indices) && static_cast(_Indices) < _Last ? (void) _LkN.unlock() : void()), - 0)...}; - (void) _Ignored; -} - -template -int _Try_lock_range(const int _First, const int _Last, _LockN&... _LkN) { - using _Indices = index_sequence_for<_LockN...>; - int _Next = _First; - _TRY_BEGIN - for (; _Next != _Last; ++_Next) { - if (!_Try_lock_from_locks(_Next, _Indices{}, _LkN...)) { // try_lock failed, backout - _Unlock_locks(_First, _Next, _Indices{}, _LkN...); - return _Next; - } - } - _CATCH_ALL - _Unlock_locks(_First, _Next, _Indices{}, _LkN...); - _RERAISE; - _CATCH_END - - return -1; -} - -template -int _Try_lock1(_Lock0& _Lk0, _Lock1& _Lk1, _Lock2& _Lk2, _LockN&... _LkN) { // try to lock 3 or more locks - return _Try_lock_range(0, sizeof...(_LockN) + 3, _Lk0, _Lk1, _Lk2, _LkN...); -} - -template -int _Try_lock1(_Lock0& _Lk0, _Lock1& _Lk1) { - // try to lock 2 locks, special case for better codegen and reduced metaprogramming for common case - if (!_Lk0.try_lock()) { - return 0; - } - - _TRY_BEGIN - if (!_Lk1.try_lock()) { - _Lk0.unlock(); - return 1; - } - _CATCH_ALL - _Lk0.unlock(); - _RERAISE; - _CATCH_END - - return -1; -} - -template -_NODISCARD int try_lock(_Lock0& _Lk0, _Lock1& _Lk1, _LockN&... _LkN) { // try to lock multiple locks - return _Try_lock1(_Lk0, _Lk1, _LkN...); -} - -template -int _Lock_attempt(const int _Hard_lock, _LockN&... _LkN) { - // attempt to lock 3 or more locks, starting by locking _LkN[_Hard_lock] and trying to lock the rest - using _Indices = index_sequence_for<_LockN...>; - _Lock_from_locks(_Hard_lock, _Indices{}, _LkN...); - int _Failed = -1; - int _Backout_start = _Hard_lock; // that is, unlock _Hard_lock - - _TRY_BEGIN - _Failed = _Try_lock_range(0, _Hard_lock, _LkN...); - if (_Failed == -1) { - _Backout_start = 0; // that is, unlock [0, _Hard_lock] if the next throws - _Failed = _Try_lock_range(_Hard_lock + 1, sizeof...(_LockN), _LkN...); - if (_Failed == -1) { // we got all the locks - return -1; - } - } - _CATCH_ALL - _Unlock_locks(_Backout_start, _Hard_lock + 1, _Indices{}, _LkN...); - _RERAISE; - _CATCH_END - - // we didn't get all the locks, backout - _Unlock_locks(_Backout_start, _Hard_lock + 1, _Indices{}, _LkN...); - _STD this_thread::yield(); - return _Failed; -} - -template -void _Lock_nonmember1(_Lock0& _Lk0, _Lock1& _Lk1, _Lock2& _Lk2, _LockN&... _LkN) { - // lock 3 or more locks, without deadlock - int _Hard_lock = 0; - while (_Hard_lock != -1) { - _Hard_lock = _Lock_attempt(_Hard_lock, _Lk0, _Lk1, _Lk2, _LkN...); - } -} - -template -bool _Lock_attempt_small(_Lock0& _Lk0, _Lock1& _Lk1) { - // attempt to lock 2 locks, by first locking _Lk0, and then trying to lock _Lk1 returns whether to try again - _Lk0.lock(); - _TRY_BEGIN - if (_Lk1.try_lock()) { - return false; - } - _CATCH_ALL - _Lk0.unlock(); - _RERAISE; - _CATCH_END - - _Lk0.unlock(); - _STD this_thread::yield(); - return true; -} - -template -void _Lock_nonmember1(_Lock0& _Lk0, _Lock1& _Lk1) { - // lock 2 locks, without deadlock, special case for better codegen and reduced metaprogramming for common case - while (_Lock_attempt_small(_Lk0, _Lk1) && _Lock_attempt_small(_Lk1, _Lk0)) { // keep trying - } -} - -template -void lock(_Lock0& _Lk0, _Lock1& _Lk1, _LockN&... _LkN) { // lock multiple locks, without deadlock - _Lock_nonmember1(_Lk0, _Lk1, _LkN...); -} - -template -class _NODISCARD lock_guard { // class with destructor that unlocks a mutex -public: - using mutex_type = _Mutex; - - explicit lock_guard(_Mutex& _Mtx) : _MyMutex(_Mtx) { // construct and lock - _MyMutex.lock(); - } - - lock_guard(_Mutex& _Mtx, adopt_lock_t) : _MyMutex(_Mtx) {} // construct but don't lock - - ~lock_guard() noexcept { - _MyMutex.unlock(); - } - - lock_guard(const lock_guard&) = delete; - lock_guard& operator=(const lock_guard&) = delete; - -private: - _Mutex& _MyMutex; -}; - -#if _HAS_CXX17 -template -class _NODISCARD scoped_lock { // class with destructor that unlocks mutexes -public: - explicit scoped_lock(_Mutexes&... _Mtxes) : _MyMutexes(_Mtxes...) { // construct and lock - _STD lock(_Mtxes...); - } - - explicit scoped_lock(adopt_lock_t, _Mutexes&... _Mtxes) : _MyMutexes(_Mtxes...) {} // construct but don't lock - - ~scoped_lock() noexcept { - _STD apply([](_Mutexes&... _Mtxes) { (..., (void) _Mtxes.unlock()); }, _MyMutexes); - } - - scoped_lock(const scoped_lock&) = delete; - scoped_lock& operator=(const scoped_lock&) = delete; - -private: - tuple<_Mutexes&...> _MyMutexes; -}; - -template -class _NODISCARD scoped_lock<_Mutex> { -public: - using mutex_type = _Mutex; - - explicit scoped_lock(_Mutex& _Mtx) : _MyMutex(_Mtx) { // construct and lock - _MyMutex.lock(); - } - - explicit scoped_lock(adopt_lock_t, _Mutex& _Mtx) : _MyMutex(_Mtx) {} // construct but don't lock - - ~scoped_lock() noexcept { - _MyMutex.unlock(); - } - - scoped_lock(const scoped_lock&) = delete; - scoped_lock& operator=(const scoped_lock&) = delete; - -private: - _Mutex& _MyMutex; -}; - -template <> -class scoped_lock<> { -public: - explicit scoped_lock() {} - explicit scoped_lock(adopt_lock_t) {} - ~scoped_lock() noexcept {} - - scoped_lock(const scoped_lock&) = delete; - scoped_lock& operator=(const scoped_lock&) = delete; -}; -#endif // _HAS_CXX17 - -#ifdef _M_CEE -#define _WINDOWS_API __stdcall -#define _RENAME_WINDOWS_API(_Api) _Api##_clr -#else // ^^^ _M_CEE // !_M_CEE vvv -// #define _WINDOWS_API __declspec(dllimport) __stdcall -#define _WINDOWS_API __stdcall -#define _RENAME_WINDOWS_API(_Api) _Api -#endif // _M_CEE - -// WINBASEAPI -// BOOL -// WINAPI -// InitOnceBeginInitialize( -// _Inout_ LPINIT_ONCE lpInitOnce, -// _In_ DWORD dwFlags, -// _Out_ PBOOL fPending, -// _Outptr_opt_result_maybenull_ LPVOID* lpContext -// ); -extern "C" _NODISCARD int _WINDOWS_API _RENAME_WINDOWS_API(__std_init_once_begin_initialize)( - void** _LpInitOnce, unsigned long _DwFlags, int* _FPending, void** _LpContext) noexcept; - -// WINBASEAPI -// BOOL -// WINAPI -// InitOnceComplete( -// _Inout_ LPINIT_ONCE lpInitOnce, -// _In_ DWORD dwFlags, -// _In_opt_ LPVOID lpContext -// ); -extern "C" _NODISCARD int _WINDOWS_API _RENAME_WINDOWS_API(__std_init_once_complete)( - void** _LpInitOnce, unsigned long _DwFlags, void* _LpContext) noexcept; - -// #define RTL_RUN_ONCE_INIT_FAILED 0x00000004UL -// #define INIT_ONCE_INIT_FAILED RTL_RUN_ONCE_INIT_FAILED -_INLINE_VAR constexpr unsigned long _Init_once_init_failed = 0x4UL; - -struct _Init_once_completer { - once_flag& _Once; - unsigned long _DwFlags; - ~_Init_once_completer() { - if (_RENAME_WINDOWS_API(__std_init_once_complete)(&_Once._Opaque, _DwFlags, nullptr) == 0) { - _CSTD abort(); - } - } -}; - -template -void(call_once)(once_flag& _Once, _Fn&& _Fx, _Args&&... _Ax) noexcept( - noexcept(_STD invoke(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...))) /* strengthened */ { - // call _Fx(_Ax...) once - // parentheses against common "#define call_once(flag,func) pthread_once(flag,func)" - int _Pending; - if (_RENAME_WINDOWS_API(__std_init_once_begin_initialize)(&_Once._Opaque, 0, &_Pending, nullptr) == 0) { - _CSTD abort(); - } - - if (_Pending != 0) { - _Init_once_completer _Op{_Once, _Init_once_init_failed}; - _STD invoke(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...); - _Op._DwFlags = 0; - } -} - -#undef _WINDOWS_API -#undef _RENAME_WINDOWS_API - -// condition_variable, timed_mutex, and recursive_timed_mutex are not supported under /clr -#ifndef _M_CEE -enum class cv_status { // names for wait returns - no_timeout, - timeout -}; - -class condition_variable { // class for waiting for conditions -public: - using native_handle_type = _Cnd_t; - - condition_variable() { - _Cnd_init_in_situ(_Mycnd()); - } - - ~condition_variable() noexcept { - _Cnd_destroy_in_situ(_Mycnd()); - } - - condition_variable(const condition_variable&) = delete; - condition_variable& operator=(const condition_variable&) = delete; - - void notify_one() noexcept { // wake up one waiter - _Cnd_signal(_Mycnd()); - } - - void notify_all() noexcept { // wake up all waiters - _Cnd_broadcast(_Mycnd()); - } - - void wait(unique_lock& _Lck) { // wait for signal - // Nothing to do to comply with LWG-2135 because std::mutex lock/unlock are nothrow - _Cnd_wait(_Mycnd(), _Lck.mutex()->_Mymtx()); - } - - template - void wait(unique_lock& _Lck, _Predicate _Pred) { // wait for signal and test predicate - while (!_Pred()) { - wait(_Lck); - } - } - - template - cv_status wait_for(unique_lock& _Lck, const chrono::duration<_Rep, _Period>& _Rel_time) { - // wait for duration - if (_Rel_time <= chrono::duration<_Rep, _Period>::zero()) { - return cv_status::timeout; - } - - // TRANSITION, ABI: The standard says that we should use a steady clock, - // but unfortunately our ABI speaks struct xtime, which is relative to the system clock. - _CSTD xtime _Tgt; - const bool _Clamped = _To_xtime_10_day_clamped(_Tgt, _Rel_time); - const cv_status _Result = wait_until(_Lck, &_Tgt); - if (_Clamped) { - return cv_status::no_timeout; - } - - return _Result; - } - - template - bool wait_for(unique_lock& _Lck, const chrono::duration<_Rep, _Period>& _Rel_time, _Predicate _Pred) { - // wait for signal with timeout and check predicate - return _Wait_until1(_Lck, _To_absolute_time(_Rel_time), _Pred); - } - - template - cv_status wait_until(unique_lock& _Lck, const chrono::time_point<_Clock, _Duration>& _Abs_time) { - // wait until time point -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - for (;;) { - const auto _Now = _Clock::now(); - if (_Abs_time <= _Now) { - return cv_status::timeout; - } - - _CSTD xtime _Tgt; - (void) _To_xtime_10_day_clamped(_Tgt, _Abs_time - _Now); - const cv_status _Result = wait_until(_Lck, &_Tgt); - if (_Result == cv_status::no_timeout) { - return cv_status::no_timeout; - } - } - } - - template - bool wait_until( - unique_lock& _Lck, const chrono::time_point<_Clock, _Duration>& _Abs_time, _Predicate _Pred) { - // wait for signal with timeout and check predicate -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - return _Wait_until1(_Lck, _Abs_time, _Pred); - } - - cv_status wait_until(unique_lock& _Lck, const xtime* _Abs_time) { - // wait for signal with timeout - if (!_Mtx_current_owns(_Lck.mutex()->_Mymtx())) { - _Throw_Cpp_error(_OPERATION_NOT_PERMITTED); - } - - // Nothing to do to comply with LWG-2135 because std::mutex lock/unlock are nothrow - const int _Res = _Cnd_timedwait(_Mycnd(), _Lck.mutex()->_Mymtx(), _Abs_time); - switch (_Res) { - case _Thrd_success: - return cv_status::no_timeout; - case _Thrd_timedout: - return cv_status::timeout; - default: - _Throw_C_error(_Res); - } - } - - template - bool wait_until(unique_lock& _Lck, const xtime* _Abs_time, _Predicate _Pred) { - // wait for signal with timeout and check predicate - return _Wait_until1(_Lck, _Abs_time, _Pred); - } - - _NODISCARD native_handle_type native_handle() { - return _Mycnd(); - } - - void _Register(unique_lock& _Lck, int* _Ready) { // register this object for release at thread exit - _Cnd_register_at_thread_exit(_Mycnd(), _Lck.release()->_Mymtx(), _Ready); - } - - void _Unregister(mutex& _Mtx) { // unregister this object for release at thread exit - _Cnd_unregister_at_thread_exit(_Mtx._Mymtx()); - } - -private: - aligned_storage_t<_Cnd_internal_imp_size, _Cnd_internal_imp_alignment> _Cnd_storage; - - _Cnd_t _Mycnd() noexcept { // get pointer to _Cnd_internal_imp_t inside _Cnd_storage - return reinterpret_cast<_Cnd_t>(&_Cnd_storage); - } - - template - bool _Wait_until1(unique_lock& _Lck, const xtime* _Abs_time, _Predicate& _Pred) { - // wait for signal with timeout and check predicate - while (!_Pred()) { - if (wait_until(_Lck, _Abs_time) == cv_status::timeout) { - return _Pred(); - } - } - - return true; - } - - template - bool _Wait_until1( - unique_lock& _Lck, const chrono::time_point<_Clock, _Duration>& _Abs_time, _Predicate& _Pred) { - while (!_Pred()) { - const auto _Now = _Clock::now(); - if (_Abs_time <= _Now) { - return false; - } - - _CSTD xtime _Tgt; - const bool _Clamped = _To_xtime_10_day_clamped(_Tgt, _Abs_time - _Now); - if (wait_until(_Lck, &_Tgt) == cv_status::timeout && !_Clamped) { - return _Pred(); - } - } - - return true; - } -}; - -struct _UInt_is_zero { - const unsigned int& _UInt; - - _NODISCARD bool operator()() const { - return _UInt == 0; - } -}; - -class timed_mutex { // class for timed mutual exclusion -public: - timed_mutex() noexcept : _My_locked(0) {} - - timed_mutex(const timed_mutex&) = delete; - timed_mutex& operator=(const timed_mutex&) = delete; - - void lock() { // lock the mutex - unique_lock _Lock(_My_mutex); - while (_My_locked != 0) { - _My_cond.wait(_Lock); - } - - _My_locked = UINT_MAX; - } - - _NODISCARD bool try_lock() noexcept { // try to lock the mutex - lock_guard _Lock(_My_mutex); - if (_My_locked != 0) { - return false; - } else { - _My_locked = UINT_MAX; - return true; - } - } - - void unlock() { // unlock the mutex - { - // The lock here is necessary - lock_guard _Lock(_My_mutex); - _My_locked = 0; - } - _My_cond.notify_one(); - } - - template - _NODISCARD bool try_lock_for(const chrono::duration<_Rep, _Period>& _Rel_time) { // try to lock for duration - return try_lock_until(_To_absolute_time(_Rel_time)); - } - - template - bool _Try_lock_until(_Time _Abs_time) { // try to lock the mutex with timeout - unique_lock _Lock(_My_mutex); - if (!_My_cond.wait_until(_Lock, _Abs_time, _UInt_is_zero{_My_locked})) { - return false; - } - - _My_locked = UINT_MAX; - return true; - } - - template - _NODISCARD bool try_lock_until(const chrono::time_point<_Clock, _Duration>& _Abs_time) { - // try to lock the mutex with timeout -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - return _Try_lock_until(_Abs_time); - } - - _NODISCARD bool try_lock_until(const xtime* _Abs_time) { // try to lock the mutex with timeout - return _Try_lock_until(_Abs_time); - } - -private: - mutex _My_mutex; - condition_variable _My_cond; - unsigned int _My_locked; -}; - -class recursive_timed_mutex { // class for recursive timed mutual exclusion -public: - recursive_timed_mutex() noexcept : _My_locked(0) {} - - recursive_timed_mutex(const recursive_timed_mutex&) = delete; - recursive_timed_mutex& operator=(const recursive_timed_mutex&) = delete; - - void lock() { // lock the mutex - const thread::id _Tid = this_thread::get_id(); - - unique_lock _Lock(_My_mutex); - - if (_Tid == _My_owner) { - if (_My_locked < UINT_MAX) { - ++_My_locked; - } else { - _Throw_system_error(errc::device_or_resource_busy); - } - } else { - while (_My_locked != 0) { - _My_cond.wait(_Lock); - } - - _My_locked = 1; - _My_owner = _Tid; - } - } - - _NODISCARD bool try_lock() noexcept { // try to lock the mutex - const thread::id _Tid = this_thread::get_id(); - - lock_guard _Lock(_My_mutex); - - if (_Tid == _My_owner) { - if (_My_locked < UINT_MAX) { - ++_My_locked; - } else { - return false; - } - } else { - if (_My_locked != 0) { - return false; - } else { - _My_locked = 1; - _My_owner = _Tid; - } - } - return true; - } - - void unlock() { // unlock the mutex - bool _Do_notify = false; - - { - lock_guard _Lock(_My_mutex); - --_My_locked; - if (_My_locked == 0) { - _Do_notify = true; - _My_owner = thread::id(); - } - } - - if (_Do_notify) { - _My_cond.notify_one(); - } - } - - template - _NODISCARD bool try_lock_for(const chrono::duration<_Rep, _Period>& _Rel_time) { // try to lock for duration - return try_lock_until(_To_absolute_time(_Rel_time)); - } - - template - bool _Try_lock_until(_Time _Abs_time) { // try to lock the mutex with timeout - const thread::id _Tid = this_thread::get_id(); - - unique_lock _Lock(_My_mutex); - - if (_Tid == _My_owner) { - if (_My_locked < UINT_MAX) { - ++_My_locked; - } else { - return false; - } - } else { - if (!_My_cond.wait_until(_Lock, _Abs_time, _UInt_is_zero{_My_locked})) { - return false; - } - - _My_locked = 1; - _My_owner = _Tid; - } - return true; - } - - template - _NODISCARD bool try_lock_until(const chrono::time_point<_Clock, _Duration>& _Abs_time) { - // try to lock the mutex with timeout -#if _HAS_CXX20 - static_assert(chrono::is_clock_v<_Clock>, "Clock type required"); -#endif // _HAS_CXX20 - return _Try_lock_until(_Abs_time); - } - - _NODISCARD bool try_lock_until(const xtime* _Abs_time) { // try to lock the mutex with timeout - return _Try_lock_until(_Abs_time); - } -private: - mutex _My_mutex; - condition_variable _My_cond; - unsigned int _My_locked; - thread::id _My_owner; -}; -#endif // _M_CEE -_STD_END -#pragma pop_macro("new") -_STL_RESTORE_CLANG_WARNINGS -#pragma warning(pop) -#pragma pack(pop) -#endif // _STL_COMPILER_PREPROCESSOR -#endif // _MUTEX_ +#define dllimport +#include <../include/mutex> \ No newline at end of file diff --git a/include/_version b/include/_version index d839ed5..8e159ad 100644 --- a/include/_version +++ b/include/_version @@ -26,6 +26,6 @@ Environment: #define CRTSYS_VERSION_MAJOR 0 #define CRTSYS_VERSION_MINOR 1 -#define CRTSYS_VERSION_PATCH 3 +#define CRTSYS_VERSION_PATCH 4 #endif // _CRTSYS_VERSION_H_ \ No newline at end of file diff --git a/include/winsdk/10.0.17763.0/wdk/10.0.22000.0/forced.h b/include/winsdk/10.0.17763.0/wdk/10.0.22000.0/forced.h index 3143895..f9bbf74 100644 --- a/include/winsdk/10.0.17763.0/wdk/10.0.22000.0/forced.h +++ b/include/winsdk/10.0.17763.0/wdk/10.0.22000.0/forced.h @@ -1,6 +1,31 @@ #pragma once +// +// Windows SDK 10.0.17763.0, Windows Driver Kit 10.0.22000.0를 사용하여 빌드 하는 경우 +// Windows SDK 10.0.17763.0의 ntdef.h +// +// 이 프로젝트는 User Mode의 헤더를 우선 참조하기 위해서 +// $(VC_IncludePath);$(WindowsSDK_IncludePath)가 WDK의 헤더보다 먼저 참조하도록 설정하기때문에 +// Include\10.0.22000.0\shared보다 Include\10.0.17763.0\shared를 먼저 참조합니다. +// +// 이때 아래 문제가 발생하였습니다. +// 1. Include\10.0.17763.0\shared\sdkddkver.h에 NTDDI_WIN10_FE, NTDDI_WIN10_CO가 정의되있지 않아서 +// Include\10.0.22000.0\km\wdm.h를 사용한 소스를 빌드할때 NTDDI_WIN10_FE, NTDDI_WIN10_CO아 undefined되어있는것 때문에 빌드 오류가 발생합니다. +// 2. Include\10.0.17763.0\shared\ntdef.h에 PUTF8_STRING, DECLSPEC_RESTRICT, ENCLAVE_SHORT_ID_LENGTH가 정의되어있지 않아서 +// Include\10.0.22000.0\km\wdm.h를 사용한 소스를 빌드할때 PUTF8_STRING, DECLSPEC_RESTRICT, ENCLAVE_SHORT_ID_LENGTH 관련 부분에서 빌드 오류가 발생합니다. +// +// 그래서 위 부분을 Include\10.0.22000.0\shared\sdkddkver.h와 ntdef.h의 해당 부분을 복사하여, 이곳에 정의하였습니다. +// +// 추후 다른 부분에서 문제가 발생한다면, 여기에 정의하시기 바랍니다. +// +// 그리고 되도록 SDK와 WDK의 버전이 같은 환경에서 빌드하는것을 권장합니다. +// + +// +// Include\10.0.17763.0\shared\ntdef.h +// #include + typedef PSTRING PUTF8_STRING; #ifndef DECLSPEC_RESTRICT @@ -11,15 +36,22 @@ typedef PSTRING PUTF8_STRING; #endif #endif -#ifndef NTDDI_WIN10_FE -#define NTDDI_WIN10_FE 0x0A00000A -#endif -#ifndef NTDDI_WIN10_FE -#define NTDDI_WIN10_CO 0x0A00000B -#endif +// +// Enclave ID definitions +// #ifndef ENCLAVE_SHORT_ID_LENGTH #define ENCLAVE_SHORT_ID_LENGTH 16 #endif #ifndef ENCLAVE_LONG_ID_LENGTH #define ENCLAVE_LONG_ID_LENGTH 32 -#endif \ No newline at end of file +#endif + +// +// Include\10.0.17763.0\shared\sdkddkver.h +// +#ifndef NTDDI_WIN10_FE +#define NTDDI_WIN10_FE 0x0A00000A +#endif +#ifndef NTDDI_WIN10_CO +#define NTDDI_WIN10_CO 0x0A00000B +#endif diff --git a/src/crtsys.h b/src/crtsys.h index 24ef3e9..6638098 100644 --- a/src/crtsys.h +++ b/src/crtsys.h @@ -1,127 +1,25 @@ -// clang-format off +// // // clang-format off -#pragma once +// #pragma once -#undef _CTYPE_DISABLE_MACROS -#include +// #undef _CTYPE_DISABLE_MACROS +// #include -#include +// // #define WINBASEAPI -#pragma warning(disable : 4201) -#include +// #define WIN32_LEAN_AND_MEAN +// #include -#define WINBASEAPI +// // #define WINBASEAPI -EXTERN_C_START +// // #include +// // #include +// // #include +// // #include +// sdkddkver.h가 ntddk.h(ntdef.h)보다 포함되는 경우가 발생하여, +// DECLSPEC_DEPRECATED_DDK, DECLSPEC_DEPRECATED_DDK_WINXP 등이 정의되지 않아서 문제가 발생하였습니다. +// 그러서 ntdef.h가 미리 -// crt/src/stl/xdateord.cpp -WINBASEAPI -int WINAPI GetLocaleInfoEx(_In_opt_ LPCWSTR lpLocaleName, _In_ LCTYPE LCType, - _Out_writes_to_opt_(cchData, return ) - LPWSTR lpLCData, - _In_ int cchData); - - - -// crt\src\stl\xgetwctype.cpp -WINBASEAPI -BOOL WINAPI GetStringTypeW(_In_ DWORD dwInfoType, - _In_NLS_string_(cchSrc) LPCWCH lpSrcStr, - _In_ int cchSrc, _Out_ LPWORD lpCharType); - - - -// ucrt/internal/winapi_thunks.cpp -WINBASEAPI -int -WINAPI -GetLocaleInfoW( - _In_ LCID Locale, - _In_ LCTYPE LCType, - _Out_writes_opt_(cchData) LPWSTR lpLCData, - _In_ int cchData); - - - -// ucrt/internal/winapi_thunks.cpp -WINBASEAPI -int -WINAPI -GetDateFormatW( - _In_ LCID Locale, - _In_ DWORD dwFlags, - _In_opt_ CONST SYSTEMTIME* lpDate, - _In_opt_ LPCWSTR lpFormat, - _Out_writes_opt_(cchDate) LPWSTR lpDateStr, - _In_ int cchDate - ); - - - -// ucrt/internal/winapi_thunks.cpp -WINBASEAPI -int -WINAPI -GetTimeFormatW( - _In_ LCID Locale, - _In_ DWORD dwFlags, - _In_opt_ CONST SYSTEMTIME* lpTime, - _In_opt_ LPCWSTR lpFormat, - _Out_writes_opt_(cchTime) LPWSTR lpTimeStr, - _In_ int cchTime - ); - - - -// ucrt\locale\getqloc_downlevel.cpp -typedef BOOL (CALLBACK* LOCALE_ENUMPROCW)(LPWSTR); // DEPRECATED: please use LOCALE_ENUMPROCEX - -WINBASEAPI -BOOL -WINAPI -EnumSystemLocalesW( - _In_ LOCALE_ENUMPROCW lpLocaleEnumProc, - _In_ DWORD dwFlags); - - - -// ucrt/inc/corecrt_internal.h -typedef BOOL (CALLBACK* LOCALE_ENUMPROCEX)(LPWSTR, DWORD, LPARAM); - -// ucrt/internal/winapi_thunks.cpp -WINBASEAPI -BOOL -WINAPI -EnumSystemLocalesEx( - _In_ LOCALE_ENUMPROCEX lpLocaleEnumProcEx, - _In_ DWORD dwFlags, - _In_ LPARAM lParam, - _In_opt_ LPVOID lpReserved -); - - - -// ucrt/inc/corecrt_internal.h -WINBASEAPI -BOOL -WINAPI -FindClose( - _Inout_ HANDLE hFindFile - ); - -// ucrt\inc\corecrt_internal_lowio.h -typedef struct INPUT_RECORD *PINPUT_RECORD; - - - -// ucrt\startup\thread.cpp -WINBASEAPI -DWORD -WINAPI -ResumeThread( - _In_ HANDLE hThread - ); - -EXTERN_C_END \ No newline at end of file +#include \ No newline at end of file diff --git a/src/custom/crt/fenv/fenv.c b/src/custom/crt/fenv/fenv.c index df1def3..481e651 100644 --- a/src/custom/crt/fenv/fenv.c +++ b/src/custom/crt/fenv/fenv.c @@ -1,6 +1,5 @@ // clang-format off -#include #include #include diff --git a/src/custom/misc/chandler3_noexcept.cpp b/src/custom/misc/chandler3_noexcept.cpp index 9c967ce..2a933f6 100644 --- a/src/custom/misc/chandler3_noexcept.cpp +++ b/src/custom/misc/chandler3_noexcept.cpp @@ -1,6 +1,5 @@ // clang-format off -#include #include #include diff --git a/src/custom/misc/chandler4_noexcept.cpp b/src/custom/misc/chandler4_noexcept.cpp index 1415dad..2089609 100644 --- a/src/custom/misc/chandler4_noexcept.cpp +++ b/src/custom/misc/chandler4_noexcept.cpp @@ -1,6 +1,5 @@ // clang-format off -#include #include #include diff --git a/src/custom/misc/misc.cpp b/src/custom/misc/misc.cpp index 82e6021..ec37d1a 100644 --- a/src/custom/misc/misc.cpp +++ b/src/custom/misc/misc.cpp @@ -1,7 +1,5 @@ // clang-format off -#include - // // vcruntime/guard_support.c // diff --git a/src/custom/misc/riscchandler_noexcept.cpp b/src/custom/misc/riscchandler_noexcept.cpp index 5f8f4d0..6b965f5 100644 --- a/src/custom/misc/riscchandler_noexcept.cpp +++ b/src/custom/misc/riscchandler_noexcept.cpp @@ -1,6 +1,5 @@ // clang-format off -#include #include #include diff --git a/src/custom/misc/winapi.cpp b/src/custom/misc/winapi.cpp index 7793a05..188735f 100644 --- a/src/custom/misc/winapi.cpp +++ b/src/custom/misc/winapi.cpp @@ -1,6 +1,5 @@ // clang-format off -#include #include #define WINBASEAPI diff --git a/src/custom/ucrt/common/internal/winapi_thunks.cpp b/src/custom/ucrt/common/internal/winapi_thunks.cpp index b392f61..f65c693 100644 --- a/src/custom/ucrt/common/internal/winapi_thunks.cpp +++ b/src/custom/ucrt/common/internal/winapi_thunks.cpp @@ -1,3 +1,4 @@ +#define WIN32_LEAN_AND_MEAN #include extern "C" bool __cdecl __acrt_uninitialize_winapi_thunks(bool const terminating) diff --git a/src/custom/winsdk/include/um/OAIdl.h b/src/custom/winsdk/include/um/OAIdl.h deleted file mode 100644 index 9a5256d..0000000 --- a/src/custom/winsdk/include/um/OAIdl.h +++ /dev/null @@ -1,6066 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __oaidl_h__ -#define __oaidl_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __ICreateTypeInfo_FWD_DEFINED__ -#define __ICreateTypeInfo_FWD_DEFINED__ -typedef interface ICreateTypeInfo ICreateTypeInfo; - -#endif /* __ICreateTypeInfo_FWD_DEFINED__ */ - - -#ifndef __ICreateTypeInfo2_FWD_DEFINED__ -#define __ICreateTypeInfo2_FWD_DEFINED__ -typedef interface ICreateTypeInfo2 ICreateTypeInfo2; - -#endif /* __ICreateTypeInfo2_FWD_DEFINED__ */ - - -#ifndef __ICreateTypeLib_FWD_DEFINED__ -#define __ICreateTypeLib_FWD_DEFINED__ -typedef interface ICreateTypeLib ICreateTypeLib; - -#endif /* __ICreateTypeLib_FWD_DEFINED__ */ - - -#ifndef __ICreateTypeLib2_FWD_DEFINED__ -#define __ICreateTypeLib2_FWD_DEFINED__ -typedef interface ICreateTypeLib2 ICreateTypeLib2; - -#endif /* __ICreateTypeLib2_FWD_DEFINED__ */ - - -#ifndef __IDispatch_FWD_DEFINED__ -#define __IDispatch_FWD_DEFINED__ -typedef interface IDispatch IDispatch; - -#endif /* __IDispatch_FWD_DEFINED__ */ - - -#ifndef __IEnumVARIANT_FWD_DEFINED__ -#define __IEnumVARIANT_FWD_DEFINED__ -typedef interface IEnumVARIANT IEnumVARIANT; - -#endif /* __IEnumVARIANT_FWD_DEFINED__ */ - - -#ifndef __ITypeComp_FWD_DEFINED__ -#define __ITypeComp_FWD_DEFINED__ -typedef interface ITypeComp ITypeComp; - -#endif /* __ITypeComp_FWD_DEFINED__ */ - - -#ifndef __ITypeInfo_FWD_DEFINED__ -#define __ITypeInfo_FWD_DEFINED__ -typedef interface ITypeInfo ITypeInfo; - -#endif /* __ITypeInfo_FWD_DEFINED__ */ - - -#ifndef __ITypeInfo2_FWD_DEFINED__ -#define __ITypeInfo2_FWD_DEFINED__ -typedef interface ITypeInfo2 ITypeInfo2; - -#endif /* __ITypeInfo2_FWD_DEFINED__ */ - - -#ifndef __ITypeLib_FWD_DEFINED__ -#define __ITypeLib_FWD_DEFINED__ -typedef interface ITypeLib ITypeLib; - -#endif /* __ITypeLib_FWD_DEFINED__ */ - - -#ifndef __ITypeLib2_FWD_DEFINED__ -#define __ITypeLib2_FWD_DEFINED__ -typedef interface ITypeLib2 ITypeLib2; - -#endif /* __ITypeLib2_FWD_DEFINED__ */ - - -#ifndef __ITypeChangeEvents_FWD_DEFINED__ -#define __ITypeChangeEvents_FWD_DEFINED__ -typedef interface ITypeChangeEvents ITypeChangeEvents; - -#endif /* __ITypeChangeEvents_FWD_DEFINED__ */ - - -#ifndef __IErrorInfo_FWD_DEFINED__ -#define __IErrorInfo_FWD_DEFINED__ -typedef interface IErrorInfo IErrorInfo; - -#endif /* __IErrorInfo_FWD_DEFINED__ */ - - -#ifndef __ICreateErrorInfo_FWD_DEFINED__ -#define __ICreateErrorInfo_FWD_DEFINED__ -typedef interface ICreateErrorInfo ICreateErrorInfo; - -#endif /* __ICreateErrorInfo_FWD_DEFINED__ */ - - -#ifndef __ISupportErrorInfo_FWD_DEFINED__ -#define __ISupportErrorInfo_FWD_DEFINED__ -typedef interface ISupportErrorInfo ISupportErrorInfo; - -#endif /* __ISupportErrorInfo_FWD_DEFINED__ */ - - -#ifndef __ITypeFactory_FWD_DEFINED__ -#define __ITypeFactory_FWD_DEFINED__ -typedef interface ITypeFactory ITypeFactory; - -#endif /* __ITypeFactory_FWD_DEFINED__ */ - - -#ifndef __ITypeMarshal_FWD_DEFINED__ -#define __ITypeMarshal_FWD_DEFINED__ -typedef interface ITypeMarshal ITypeMarshal; - -#endif /* __ITypeMarshal_FWD_DEFINED__ */ - - -#ifndef __IRecordInfo_FWD_DEFINED__ -#define __IRecordInfo_FWD_DEFINED__ -typedef interface IRecordInfo IRecordInfo; - -#endif /* __IRecordInfo_FWD_DEFINED__ */ - - -#ifndef __IErrorLog_FWD_DEFINED__ -#define __IErrorLog_FWD_DEFINED__ -typedef interface IErrorLog IErrorLog; - -#endif /* __IErrorLog_FWD_DEFINED__ */ - - -#ifndef __IPropertyBag_FWD_DEFINED__ -#define __IPropertyBag_FWD_DEFINED__ -typedef interface IPropertyBag IPropertyBag; - -#endif /* __IPropertyBag_FWD_DEFINED__ */ - - -#ifndef __ITypeLibRegistrationReader_FWD_DEFINED__ -#define __ITypeLibRegistrationReader_FWD_DEFINED__ -typedef interface ITypeLibRegistrationReader ITypeLibRegistrationReader; - -#endif /* __ITypeLibRegistrationReader_FWD_DEFINED__ */ - - -#ifndef __ITypeLibRegistration_FWD_DEFINED__ -#define __ITypeLibRegistration_FWD_DEFINED__ -typedef interface ITypeLibRegistration ITypeLibRegistration; - -#endif /* __ITypeLibRegistration_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "objidl.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_oaidl_0000_0000 */ -/* [local] */ - -#include -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -//-------------------------------------------------------------------------- -#if ( _MSC_VER >= 800 ) -#if _MSC_VER >= 1200 -#pragma warning(push) -#pragma warning(disable:4820) /* padding added after data member */ -#endif -#pragma warning(disable:4201) /* Nameless struct/union */ -#endif -#if ( _MSC_VER >= 1020 ) -#pragma once -#endif -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - - - - - - - - - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0000_v0_0_s_ifspec; - -#ifndef __IOleAutomationTypes_INTERFACE_DEFINED__ -#define __IOleAutomationTypes_INTERFACE_DEFINED__ - -/* interface IOleAutomationTypes */ -/* [unique][version] */ - -typedef CY CURRENCY; - -typedef struct tagSAFEARRAYBOUND - { - ULONG cElements; - LONG lLbound; - } SAFEARRAYBOUND; - -typedef struct tagSAFEARRAYBOUND *LPSAFEARRAYBOUND; - -/* the following is what MIDL knows how to remote */ -typedef /* [unique] */ __RPC_unique_pointer struct _wireVARIANT *wireVARIANT; - -typedef /* [unique] */ __RPC_unique_pointer struct _wireBRECORD *wireBRECORD; - -typedef struct _wireSAFEARR_BSTR - { - ULONG Size; - /* [ref][size_is] */ wireBSTR *aBstr; - } SAFEARR_BSTR; - -typedef struct _wireSAFEARR_UNKNOWN - { - ULONG Size; - /* [ref][size_is] */ IUnknown **apUnknown; - } SAFEARR_UNKNOWN; - -typedef struct _wireSAFEARR_DISPATCH - { - ULONG Size; - /* [ref][size_is] */ IDispatch **apDispatch; - } SAFEARR_DISPATCH; - -typedef struct _wireSAFEARR_VARIANT - { - ULONG Size; - /* [ref][size_is] */ wireVARIANT *aVariant; - } SAFEARR_VARIANT; - -typedef struct _wireSAFEARR_BRECORD - { - ULONG Size; - /* [ref][size_is] */ wireBRECORD *aRecord; - } SAFEARR_BRECORD; - -typedef struct _wireSAFEARR_HAVEIID - { - ULONG Size; - /* [ref][size_is] */ IUnknown **apUnknown; - IID iid; - } SAFEARR_HAVEIID; - -typedef /* [v1_enum] */ -enum tagSF_TYPE - { - SF_ERROR = VT_ERROR, - SF_I1 = VT_I1, - SF_I2 = VT_I2, - SF_I4 = VT_I4, - SF_I8 = VT_I8, - SF_BSTR = VT_BSTR, - SF_UNKNOWN = VT_UNKNOWN, - SF_DISPATCH = VT_DISPATCH, - SF_VARIANT = VT_VARIANT, - SF_RECORD = VT_RECORD, - SF_HAVEIID = ( VT_UNKNOWN | VT_RESERVED ) - } SF_TYPE; - -typedef struct _wireSAFEARRAY_UNION - { - ULONG sfType; - /* [switch_is] */ /* [switch_type] */ union __MIDL_IOleAutomationTypes_0001 - { - /* [case()] */ SAFEARR_BSTR BstrStr; - /* [case()] */ SAFEARR_UNKNOWN UnknownStr; - /* [case()] */ SAFEARR_DISPATCH DispatchStr; - /* [case()] */ SAFEARR_VARIANT VariantStr; - /* [case()] */ SAFEARR_BRECORD RecordStr; - /* [case()] */ SAFEARR_HAVEIID HaveIidStr; - /* [case()] */ BYTE_SIZEDARR ByteStr; - /* [case()] */ WORD_SIZEDARR WordStr; - /* [case()] */ DWORD_SIZEDARR LongStr; - /* [case()] */ HYPER_SIZEDARR HyperStr; - } u; - } SAFEARRAYUNION; - -typedef /* [unique] */ __RPC_unique_pointer struct _wireSAFEARRAY - { - USHORT cDims; - USHORT fFeatures; - ULONG cbElements; - ULONG cLocks; - SAFEARRAYUNION uArrayStructs; - /* [size_is] */ SAFEARRAYBOUND rgsabound[ 1 ]; - } *wireSAFEARRAY; - -typedef /* [unique] */ __RPC_unique_pointer wireSAFEARRAY *wirePSAFEARRAY; - -typedef struct tagSAFEARRAY - { - USHORT cDims; - USHORT fFeatures; - ULONG cbElements; - ULONG cLocks; - PVOID pvData; - SAFEARRAYBOUND rgsabound[ 1 ]; - } SAFEARRAY; - -typedef /* [wire_marshal] */ SAFEARRAY *LPSAFEARRAY; - -#define FADF_AUTO ( 0x1 ) - -#define FADF_STATIC ( 0x2 ) - -#define FADF_EMBEDDED ( 0x4 ) - -#define FADF_FIXEDSIZE ( 0x10 ) - -#define FADF_RECORD ( 0x20 ) - -#define FADF_HAVEIID ( 0x40 ) - -#define FADF_HAVEVARTYPE ( 0x80 ) - -#define FADF_BSTR ( 0x100 ) - -#define FADF_UNKNOWN ( 0x200 ) - -#define FADF_DISPATCH ( 0x400 ) - -#define FADF_VARIANT ( 0x800 ) - -#define FADF_RESERVED ( 0xf008 ) - -/* VARIANT STRUCTURE - * - * VARTYPE vt; - * WORD wReserved1; - * WORD wReserved2; - * WORD wReserved3; - * union { - * LONGLONG VT_I8 - * LONG VT_I4 - * BYTE VT_UI1 - * SHORT VT_I2 - * FLOAT VT_R4 - * DOUBLE VT_R8 - * VARIANT_BOOL VT_BOOL - * SCODE VT_ERROR - * CY VT_CY - * DATE VT_DATE - * BSTR VT_BSTR - * IUnknown * VT_UNKNOWN - * IDispatch * VT_DISPATCH - * SAFEARRAY * VT_ARRAY - * BYTE * VT_BYREF|VT_UI1 - * SHORT * VT_BYREF|VT_I2 - * LONG * VT_BYREF|VT_I4 - * LONGLONG * VT_BYREF|VT_I8 - * FLOAT * VT_BYREF|VT_R4 - * DOUBLE * VT_BYREF|VT_R8 - * VARIANT_BOOL * VT_BYREF|VT_BOOL - * SCODE * VT_BYREF|VT_ERROR - * CY * VT_BYREF|VT_CY - * DATE * VT_BYREF|VT_DATE - * BSTR * VT_BYREF|VT_BSTR - * IUnknown ** VT_BYREF|VT_UNKNOWN - * IDispatch ** VT_BYREF|VT_DISPATCH - * SAFEARRAY ** VT_BYREF|VT_ARRAY - * VARIANT * VT_BYREF|VT_VARIANT - * PVOID VT_BYREF (Generic ByRef) - * CHAR VT_I1 - * USHORT VT_UI2 - * ULONG VT_UI4 - * ULONGLONG VT_UI8 - * INT VT_INT - * UINT VT_UINT - * DECIMAL * VT_BYREF|VT_DECIMAL - * CHAR * VT_BYREF|VT_I1 - * USHORT * VT_BYREF|VT_UI2 - * ULONG * VT_BYREF|VT_UI4 - * ULONGLONG * VT_BYREF|VT_UI8 - * INT * VT_BYREF|VT_INT - * UINT * VT_BYREF|VT_UINT - * } - */ -#if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION) || (!defined(_MSC_EXTENSIONS) && !defined(_FORCENAMELESSUNION)) -#define __VARIANT_NAME_1 n1 -#define __VARIANT_NAME_2 n2 -#define __VARIANT_NAME_3 n3 -#define __VARIANT_NAME_4 brecVal -#else -#define __tagVARIANT -#define __VARIANT_NAME_1 -#define __VARIANT_NAME_2 -#define __VARIANT_NAME_3 -#define __tagBRECORD -#define __VARIANT_NAME_4 -#endif -typedef /* [wire_marshal] */ struct tagVARIANT VARIANT; - -struct tagVARIANT - { - union - { - struct __tagVARIANT - { - VARTYPE vt; - WORD wReserved1; - WORD wReserved2; - WORD wReserved3; - union - { - LONGLONG llVal; - LONG lVal; - BYTE bVal; - SHORT iVal; - FLOAT fltVal; - DOUBLE dblVal; - VARIANT_BOOL boolVal; - VARIANT_BOOL __OBSOLETE__VARIANT_BOOL; - SCODE scode; - CY cyVal; - DATE date; - BSTR bstrVal; - IUnknown *punkVal; - IDispatch *pdispVal; - SAFEARRAY *parray; - BYTE *pbVal; - SHORT *piVal; - LONG *plVal; - LONGLONG *pllVal; - FLOAT *pfltVal; - DOUBLE *pdblVal; - VARIANT_BOOL *pboolVal; - VARIANT_BOOL *__OBSOLETE__VARIANT_PBOOL; - SCODE *pscode; - CY *pcyVal; - DATE *pdate; - BSTR *pbstrVal; - IUnknown **ppunkVal; - IDispatch **ppdispVal; - SAFEARRAY **pparray; - VARIANT *pvarVal; - PVOID byref; - CHAR cVal; - USHORT uiVal; - ULONG ulVal; - ULONGLONG ullVal; - INT intVal; - UINT uintVal; - DECIMAL *pdecVal; - CHAR *pcVal; - USHORT *puiVal; - ULONG *pulVal; - ULONGLONG *pullVal; - INT *pintVal; - UINT *puintVal; - struct __tagBRECORD - { - PVOID pvRecord; - IRecordInfo *pRecInfo; - } __VARIANT_NAME_4; - } __VARIANT_NAME_3; - } __VARIANT_NAME_2; - DECIMAL decVal; - } __VARIANT_NAME_1; - } ; -typedef VARIANT *LPVARIANT; - -typedef VARIANT VARIANTARG; - -typedef VARIANT *LPVARIANTARG; - -#ifdef MIDL_PASS -typedef const VARIANT *REFVARIANT; - -#else - -#ifndef _REFVARIANT_DEFINED -#define _REFVARIANT_DEFINED -#ifdef __cplusplus -#define REFVARIANT const VARIANT & -#else -#define REFVARIANT const VARIANT * __MIDL_CONST -#endif -#endif - -#endif // MIDL_PASS - -/* the following is what MIDL knows how to remote */ -struct _wireBRECORD - { - ULONG fFlags; - ULONG clSize; - IRecordInfo *pRecInfo; - /* [size_is] */ byte *pRecord; - } ; -struct _wireVARIANT - { - DWORD clSize; - DWORD rpcReserved; - USHORT vt; - USHORT wReserved1; - USHORT wReserved2; - USHORT wReserved3; - /* [switch_is][switch_type] */ union - { - /* [case()] */ LONGLONG llVal; - /* [case()] */ LONG lVal; - /* [case()] */ BYTE bVal; - /* [case()] */ SHORT iVal; - /* [case()] */ FLOAT fltVal; - /* [case()] */ DOUBLE dblVal; - /* [case()] */ VARIANT_BOOL boolVal; - /* [case()] */ SCODE scode; - /* [case()] */ CY cyVal; - /* [case()] */ DATE date; - /* [case()] */ wireBSTR bstrVal; - /* [case()] */ IUnknown *punkVal; - /* [case()] */ IDispatch *pdispVal; - /* [case()] */ wirePSAFEARRAY parray; - /* [case()] */ wireBRECORD brecVal; - /* [case()] */ BYTE *pbVal; - /* [case()] */ SHORT *piVal; - /* [case()] */ LONG *plVal; - /* [case()] */ LONGLONG *pllVal; - /* [case()] */ FLOAT *pfltVal; - /* [case()] */ DOUBLE *pdblVal; - /* [case()] */ VARIANT_BOOL *pboolVal; - /* [case()] */ SCODE *pscode; - /* [case()] */ CY *pcyVal; - /* [case()] */ DATE *pdate; - /* [case()] */ wireBSTR *pbstrVal; - /* [case()] */ IUnknown **ppunkVal; - /* [case()] */ IDispatch **ppdispVal; - /* [case()] */ wirePSAFEARRAY *pparray; - /* [case()] */ wireVARIANT *pvarVal; - /* [case()] */ CHAR cVal; - /* [case()] */ USHORT uiVal; - /* [case()] */ ULONG ulVal; - /* [case()] */ ULONGLONG ullVal; - /* [case()] */ INT intVal; - /* [case()] */ UINT uintVal; - /* [case()] */ DECIMAL decVal; - /* [case()] */ DECIMAL *pdecVal; - /* [case()] */ CHAR *pcVal; - /* [case()] */ USHORT *puiVal; - /* [case()] */ ULONG *pulVal; - /* [case()] */ ULONGLONG *pullVal; - /* [case()] */ INT *pintVal; - /* [case()] */ UINT *puintVal; - /* [case()] */ /* Empty union arm */ - /* [case()] */ /* Empty union arm */ - } DUMMYUNIONNAME; - } ; -typedef LONG DISPID; - -typedef DISPID MEMBERID; - -typedef DWORD HREFTYPE; - -typedef /* [v1_enum] */ -enum tagTYPEKIND - { - TKIND_ENUM = 0, - TKIND_RECORD = ( TKIND_ENUM + 1 ) , - TKIND_MODULE = ( TKIND_RECORD + 1 ) , - TKIND_INTERFACE = ( TKIND_MODULE + 1 ) , - TKIND_DISPATCH = ( TKIND_INTERFACE + 1 ) , - TKIND_COCLASS = ( TKIND_DISPATCH + 1 ) , - TKIND_ALIAS = ( TKIND_COCLASS + 1 ) , - TKIND_UNION = ( TKIND_ALIAS + 1 ) , - TKIND_MAX = ( TKIND_UNION + 1 ) - } TYPEKIND; - -typedef struct tagTYPEDESC - { - /* [switch_is][switch_type] */ union - { - /* [case()] */ struct tagTYPEDESC *lptdesc; - /* [case()] */ struct tagARRAYDESC *lpadesc; - /* [case()] */ HREFTYPE hreftype; - /* [default] */ /* Empty union arm */ - } DUMMYUNIONNAME; - VARTYPE vt; - } TYPEDESC; - -typedef struct tagARRAYDESC - { - TYPEDESC tdescElem; - USHORT cDims; - /* [size_is] */ SAFEARRAYBOUND rgbounds[ 1 ]; - } ARRAYDESC; - -typedef struct tagPARAMDESCEX - { - ULONG cBytes; - VARIANTARG varDefaultValue; - } PARAMDESCEX; - -typedef struct tagPARAMDESCEX *LPPARAMDESCEX; - -typedef struct tagPARAMDESC - { - LPPARAMDESCEX pparamdescex; - USHORT wParamFlags; - } PARAMDESC; - -typedef struct tagPARAMDESC *LPPARAMDESC; - -#define PARAMFLAG_NONE ( 0 ) - -#define PARAMFLAG_FIN ( 0x1 ) - -#define PARAMFLAG_FOUT ( 0x2 ) - -#define PARAMFLAG_FLCID ( 0x4 ) - -#define PARAMFLAG_FRETVAL ( 0x8 ) - -#define PARAMFLAG_FOPT ( 0x10 ) - -#define PARAMFLAG_FHASDEFAULT ( 0x20 ) - -#define PARAMFLAG_FHASCUSTDATA ( 0x40 ) - -typedef struct tagIDLDESC - { - ULONG_PTR dwReserved; - USHORT wIDLFlags; - } IDLDESC; - -typedef struct tagIDLDESC *LPIDLDESC; - -#define IDLFLAG_NONE ( PARAMFLAG_NONE ) - -#define IDLFLAG_FIN ( PARAMFLAG_FIN ) - -#define IDLFLAG_FOUT ( PARAMFLAG_FOUT ) - -#define IDLFLAG_FLCID ( PARAMFLAG_FLCID ) - -#define IDLFLAG_FRETVAL ( PARAMFLAG_FRETVAL ) - -//;begin_internal -#if 0 -/* the following is what MIDL knows how to remote */ -typedef struct tagELEMDESC - { - TYPEDESC tdesc; - PARAMDESC paramdesc; - } ELEMDESC; - -#else /* 0 */ -//;end_internal -typedef struct tagELEMDESC { - TYPEDESC tdesc; /* the type of the element */ - union { - IDLDESC idldesc; /* info for remoting the element */ - PARAMDESC paramdesc; /* info about the parameter */ - } DUMMYUNIONNAME; -} ELEMDESC, * LPELEMDESC; -//;begin_internal -#endif /* 0 */ -//;end_internal -typedef struct tagTYPEATTR - { - GUID guid; - LCID lcid; - DWORD dwReserved; - MEMBERID memidConstructor; - MEMBERID memidDestructor; - LPOLESTR lpstrSchema; - ULONG cbSizeInstance; - TYPEKIND typekind; - WORD cFuncs; - WORD cVars; - WORD cImplTypes; - WORD cbSizeVft; - WORD cbAlignment; - WORD wTypeFlags; - WORD wMajorVerNum; - WORD wMinorVerNum; - TYPEDESC tdescAlias; - IDLDESC idldescType; - } TYPEATTR; - -typedef struct tagTYPEATTR *LPTYPEATTR; - -typedef struct tagDISPPARAMS - { - /* [size_is] */ VARIANTARG *rgvarg; - /* [size_is] */ DISPID *rgdispidNamedArgs; - UINT cArgs; - UINT cNamedArgs; - } DISPPARAMS; - -//;begin_internal -#if 0 -/* the following is what MIDL knows how to remote */ - -typedef struct tagEXCEPINFO - { - WORD wCode; - WORD wReserved; - BSTR bstrSource; - BSTR bstrDescription; - BSTR bstrHelpFile; - DWORD dwHelpContext; - ULONG_PTR pvReserved; - ULONG_PTR pfnDeferredFillIn; - SCODE scode; - } EXCEPINFO; - -#else /* 0 */ -//;end_internal -typedef struct tagEXCEPINFO { - WORD wCode; - WORD wReserved; - BSTR bstrSource; - BSTR bstrDescription; - BSTR bstrHelpFile; - DWORD dwHelpContext; - PVOID pvReserved; - HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *); - SCODE scode; -} EXCEPINFO, * LPEXCEPINFO; -//;begin_internal -#endif /* 0 */ -//;end_internal -typedef /* [v1_enum] */ -enum tagCALLCONV - { - CC_FASTCALL = 0, - CC_CDECL = 1, - CC_MSCPASCAL = ( CC_CDECL + 1 ) , - CC_PASCAL = CC_MSCPASCAL, - CC_MACPASCAL = ( CC_PASCAL + 1 ) , - CC_STDCALL = ( CC_MACPASCAL + 1 ) , - CC_FPFASTCALL = ( CC_STDCALL + 1 ) , - CC_SYSCALL = ( CC_FPFASTCALL + 1 ) , - CC_MPWCDECL = ( CC_SYSCALL + 1 ) , - CC_MPWPASCAL = ( CC_MPWCDECL + 1 ) , - CC_MAX = ( CC_MPWPASCAL + 1 ) - } CALLCONV; - -typedef /* [v1_enum] */ -enum tagFUNCKIND - { - FUNC_VIRTUAL = 0, - FUNC_PUREVIRTUAL = ( FUNC_VIRTUAL + 1 ) , - FUNC_NONVIRTUAL = ( FUNC_PUREVIRTUAL + 1 ) , - FUNC_STATIC = ( FUNC_NONVIRTUAL + 1 ) , - FUNC_DISPATCH = ( FUNC_STATIC + 1 ) - } FUNCKIND; - -typedef /* [v1_enum] */ -enum tagINVOKEKIND - { - INVOKE_FUNC = 1, - INVOKE_PROPERTYGET = 2, - INVOKE_PROPERTYPUT = 4, - INVOKE_PROPERTYPUTREF = 8 - } INVOKEKIND; - -typedef struct tagFUNCDESC - { - MEMBERID memid; - /* [size_is] */ SCODE *lprgscode; - /* [size_is] */ ELEMDESC *lprgelemdescParam; - FUNCKIND funckind; - INVOKEKIND invkind; - CALLCONV callconv; - SHORT cParams; - SHORT cParamsOpt; - SHORT oVft; - SHORT cScodes; - ELEMDESC elemdescFunc; - WORD wFuncFlags; - } FUNCDESC; - -typedef struct tagFUNCDESC *LPFUNCDESC; - -typedef /* [v1_enum] */ -enum tagVARKIND - { - VAR_PERINSTANCE = 0, - VAR_STATIC = ( VAR_PERINSTANCE + 1 ) , - VAR_CONST = ( VAR_STATIC + 1 ) , - VAR_DISPATCH = ( VAR_CONST + 1 ) - } VARKIND; - -#define IMPLTYPEFLAG_FDEFAULT ( 0x1 ) - -#define IMPLTYPEFLAG_FSOURCE ( 0x2 ) - -#define IMPLTYPEFLAG_FRESTRICTED ( 0x4 ) - -#define IMPLTYPEFLAG_FDEFAULTVTABLE ( 0x8 ) - -typedef struct tagVARDESC - { - MEMBERID memid; - LPOLESTR lpstrSchema; - /* [switch_is][switch_type] */ union - { - /* [case()] */ ULONG oInst; - /* [case()] */ VARIANT *lpvarValue; - } DUMMYUNIONNAME; - ELEMDESC elemdescVar; - WORD wVarFlags; - VARKIND varkind; - } VARDESC; - -typedef struct tagVARDESC *LPVARDESC; - -typedef -enum tagTYPEFLAGS - { - TYPEFLAG_FAPPOBJECT = 0x1, - TYPEFLAG_FCANCREATE = 0x2, - TYPEFLAG_FLICENSED = 0x4, - TYPEFLAG_FPREDECLID = 0x8, - TYPEFLAG_FHIDDEN = 0x10, - TYPEFLAG_FCONTROL = 0x20, - TYPEFLAG_FDUAL = 0x40, - TYPEFLAG_FNONEXTENSIBLE = 0x80, - TYPEFLAG_FOLEAUTOMATION = 0x100, - TYPEFLAG_FRESTRICTED = 0x200, - TYPEFLAG_FAGGREGATABLE = 0x400, - TYPEFLAG_FREPLACEABLE = 0x800, - TYPEFLAG_FDISPATCHABLE = 0x1000, - TYPEFLAG_FREVERSEBIND = 0x2000, - TYPEFLAG_FPROXY = 0x4000 - } TYPEFLAGS; - -typedef -enum tagFUNCFLAGS - { - FUNCFLAG_FRESTRICTED = 0x1, - FUNCFLAG_FSOURCE = 0x2, - FUNCFLAG_FBINDABLE = 0x4, - FUNCFLAG_FREQUESTEDIT = 0x8, - FUNCFLAG_FDISPLAYBIND = 0x10, - FUNCFLAG_FDEFAULTBIND = 0x20, - FUNCFLAG_FHIDDEN = 0x40, - FUNCFLAG_FUSESGETLASTERROR = 0x80, - FUNCFLAG_FDEFAULTCOLLELEM = 0x100, - FUNCFLAG_FUIDEFAULT = 0x200, - FUNCFLAG_FNONBROWSABLE = 0x400, - FUNCFLAG_FREPLACEABLE = 0x800, - FUNCFLAG_FIMMEDIATEBIND = 0x1000 - } FUNCFLAGS; - -typedef -enum tagVARFLAGS - { - VARFLAG_FREADONLY = 0x1, - VARFLAG_FSOURCE = 0x2, - VARFLAG_FBINDABLE = 0x4, - VARFLAG_FREQUESTEDIT = 0x8, - VARFLAG_FDISPLAYBIND = 0x10, - VARFLAG_FDEFAULTBIND = 0x20, - VARFLAG_FHIDDEN = 0x40, - VARFLAG_FRESTRICTED = 0x80, - VARFLAG_FDEFAULTCOLLELEM = 0x100, - VARFLAG_FUIDEFAULT = 0x200, - VARFLAG_FNONBROWSABLE = 0x400, - VARFLAG_FREPLACEABLE = 0x800, - VARFLAG_FIMMEDIATEBIND = 0x1000 - } VARFLAGS; - -typedef /* [wire_marshal] */ struct tagCLEANLOCALSTORAGE - { - IUnknown *pInterface; - PVOID pStorage; - DWORD flags; - } CLEANLOCALSTORAGE; - -typedef struct tagCUSTDATAITEM - { - GUID guid; - VARIANTARG varValue; - } CUSTDATAITEM; - -typedef struct tagCUSTDATAITEM *LPCUSTDATAITEM; - -typedef struct tagCUSTDATA - { - DWORD cCustData; - /* [size_is] */ LPCUSTDATAITEM prgCustData; - } CUSTDATA; - -typedef struct tagCUSTDATA *LPCUSTDATA; - - - -extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_c_ifspec; -extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_s_ifspec; -#endif /* __IOleAutomationTypes_INTERFACE_DEFINED__ */ - -/* interface __MIDL_itf_oaidl_0000_0001 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0001_v0_0_s_ifspec; - -#ifndef __ICreateTypeInfo_INTERFACE_DEFINED__ -#define __ICreateTypeInfo_INTERFACE_DEFINED__ - -/* interface ICreateTypeInfo */ -/* [local][unique][uuid][object] */ - -typedef /* [unique] */ ICreateTypeInfo *LPCREATETYPEINFO; - - -EXTERN_C const IID IID_ICreateTypeInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00020405-0000-0000-C000-000000000046") - ICreateTypeInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetGuid( - /* [in] */ REFGUID guid) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTypeFlags( - /* [in] */ UINT uTypeFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDocString( - /* [annotation][in] */ - __RPC__in LPOLESTR pStrDoc) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetHelpContext( - /* [in] */ DWORD dwHelpContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVersion( - /* [in] */ WORD wMajorVerNum, - /* [in] */ WORD wMinorVerNum) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddRefTypeInfo( - /* [in] */ ITypeInfo *pTInfo, - /* [in] */ HREFTYPE *phRefType) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddFuncDesc( - /* [in] */ UINT index, - /* [in] */ FUNCDESC *pFuncDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddImplType( - /* [in] */ UINT index, - /* [in] */ HREFTYPE hRefType) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetImplTypeFlags( - /* [in] */ UINT index, - /* [in] */ INT implTypeFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAlignment( - /* [in] */ WORD cbAlignment) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetSchema( - /* [annotation][in] */ - __RPC__in LPOLESTR pStrSchema) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddVarDesc( - /* [in] */ UINT index, - /* [in] */ VARDESC *pVarDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFuncAndParamNames( - /* [in] */ UINT index, - /* [annotation][in][size_is][in] */ - __RPC__in_ecount(cNames) LPOLESTR *rgszNames, - /* [in] */ UINT cNames) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVarName( - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szName) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTypeDescAlias( - /* [in] */ TYPEDESC *pTDescAlias) = 0; - - virtual HRESULT STDMETHODCALLTYPE DefineFuncAsDllEntry( - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szDllName, - /* [annotation][in] */ - __RPC__in LPOLESTR szProcName) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFuncDocString( - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szDocString) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVarDocString( - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szDocString) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFuncHelpContext( - /* [in] */ UINT index, - /* [in] */ DWORD dwHelpContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVarHelpContext( - /* [in] */ UINT index, - /* [in] */ DWORD dwHelpContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetMops( - /* [in] */ UINT index, - /* [annotation][in] */ - _In_ BSTR bstrMops) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTypeIdldesc( - /* [in] */ IDLDESC *pIdlDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE LayOut( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICreateTypeInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICreateTypeInfo * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICreateTypeInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICreateTypeInfo * This); - - HRESULT ( STDMETHODCALLTYPE *SetGuid )( - ICreateTypeInfo * This, - /* [in] */ REFGUID guid); - - HRESULT ( STDMETHODCALLTYPE *SetTypeFlags )( - ICreateTypeInfo * This, - /* [in] */ UINT uTypeFlags); - - HRESULT ( STDMETHODCALLTYPE *SetDocString )( - ICreateTypeInfo * This, - /* [annotation][in] */ - __RPC__in LPOLESTR pStrDoc); - - HRESULT ( STDMETHODCALLTYPE *SetHelpContext )( - ICreateTypeInfo * This, - /* [in] */ DWORD dwHelpContext); - - HRESULT ( STDMETHODCALLTYPE *SetVersion )( - ICreateTypeInfo * This, - /* [in] */ WORD wMajorVerNum, - /* [in] */ WORD wMinorVerNum); - - HRESULT ( STDMETHODCALLTYPE *AddRefTypeInfo )( - ICreateTypeInfo * This, - /* [in] */ ITypeInfo *pTInfo, - /* [in] */ HREFTYPE *phRefType); - - HRESULT ( STDMETHODCALLTYPE *AddFuncDesc )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [in] */ FUNCDESC *pFuncDesc); - - HRESULT ( STDMETHODCALLTYPE *AddImplType )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [in] */ HREFTYPE hRefType); - - HRESULT ( STDMETHODCALLTYPE *SetImplTypeFlags )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [in] */ INT implTypeFlags); - - HRESULT ( STDMETHODCALLTYPE *SetAlignment )( - ICreateTypeInfo * This, - /* [in] */ WORD cbAlignment); - - HRESULT ( STDMETHODCALLTYPE *SetSchema )( - ICreateTypeInfo * This, - /* [annotation][in] */ - __RPC__in LPOLESTR pStrSchema); - - HRESULT ( STDMETHODCALLTYPE *AddVarDesc )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [in] */ VARDESC *pVarDesc); - - HRESULT ( STDMETHODCALLTYPE *SetFuncAndParamNames )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [annotation][in][size_is][in] */ - __RPC__in_ecount(cNames) LPOLESTR *rgszNames, - /* [in] */ UINT cNames); - - HRESULT ( STDMETHODCALLTYPE *SetVarName )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szName); - - HRESULT ( STDMETHODCALLTYPE *SetTypeDescAlias )( - ICreateTypeInfo * This, - /* [in] */ TYPEDESC *pTDescAlias); - - HRESULT ( STDMETHODCALLTYPE *DefineFuncAsDllEntry )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szDllName, - /* [annotation][in] */ - __RPC__in LPOLESTR szProcName); - - HRESULT ( STDMETHODCALLTYPE *SetFuncDocString )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szDocString); - - HRESULT ( STDMETHODCALLTYPE *SetVarDocString )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szDocString); - - HRESULT ( STDMETHODCALLTYPE *SetFuncHelpContext )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [in] */ DWORD dwHelpContext); - - HRESULT ( STDMETHODCALLTYPE *SetVarHelpContext )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [in] */ DWORD dwHelpContext); - - HRESULT ( STDMETHODCALLTYPE *SetMops )( - ICreateTypeInfo * This, - /* [in] */ UINT index, - /* [annotation][in] */ - _In_ BSTR bstrMops); - - HRESULT ( STDMETHODCALLTYPE *SetTypeIdldesc )( - ICreateTypeInfo * This, - /* [in] */ IDLDESC *pIdlDesc); - - HRESULT ( STDMETHODCALLTYPE *LayOut )( - ICreateTypeInfo * This); - - END_INTERFACE - } ICreateTypeInfoVtbl; - - interface ICreateTypeInfo - { - CONST_VTBL struct ICreateTypeInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICreateTypeInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICreateTypeInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICreateTypeInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICreateTypeInfo_SetGuid(This,guid) \ - ( (This)->lpVtbl -> SetGuid(This,guid) ) - -#define ICreateTypeInfo_SetTypeFlags(This,uTypeFlags) \ - ( (This)->lpVtbl -> SetTypeFlags(This,uTypeFlags) ) - -#define ICreateTypeInfo_SetDocString(This,pStrDoc) \ - ( (This)->lpVtbl -> SetDocString(This,pStrDoc) ) - -#define ICreateTypeInfo_SetHelpContext(This,dwHelpContext) \ - ( (This)->lpVtbl -> SetHelpContext(This,dwHelpContext) ) - -#define ICreateTypeInfo_SetVersion(This,wMajorVerNum,wMinorVerNum) \ - ( (This)->lpVtbl -> SetVersion(This,wMajorVerNum,wMinorVerNum) ) - -#define ICreateTypeInfo_AddRefTypeInfo(This,pTInfo,phRefType) \ - ( (This)->lpVtbl -> AddRefTypeInfo(This,pTInfo,phRefType) ) - -#define ICreateTypeInfo_AddFuncDesc(This,index,pFuncDesc) \ - ( (This)->lpVtbl -> AddFuncDesc(This,index,pFuncDesc) ) - -#define ICreateTypeInfo_AddImplType(This,index,hRefType) \ - ( (This)->lpVtbl -> AddImplType(This,index,hRefType) ) - -#define ICreateTypeInfo_SetImplTypeFlags(This,index,implTypeFlags) \ - ( (This)->lpVtbl -> SetImplTypeFlags(This,index,implTypeFlags) ) - -#define ICreateTypeInfo_SetAlignment(This,cbAlignment) \ - ( (This)->lpVtbl -> SetAlignment(This,cbAlignment) ) - -#define ICreateTypeInfo_SetSchema(This,pStrSchema) \ - ( (This)->lpVtbl -> SetSchema(This,pStrSchema) ) - -#define ICreateTypeInfo_AddVarDesc(This,index,pVarDesc) \ - ( (This)->lpVtbl -> AddVarDesc(This,index,pVarDesc) ) - -#define ICreateTypeInfo_SetFuncAndParamNames(This,index,rgszNames,cNames) \ - ( (This)->lpVtbl -> SetFuncAndParamNames(This,index,rgszNames,cNames) ) - -#define ICreateTypeInfo_SetVarName(This,index,szName) \ - ( (This)->lpVtbl -> SetVarName(This,index,szName) ) - -#define ICreateTypeInfo_SetTypeDescAlias(This,pTDescAlias) \ - ( (This)->lpVtbl -> SetTypeDescAlias(This,pTDescAlias) ) - -#define ICreateTypeInfo_DefineFuncAsDllEntry(This,index,szDllName,szProcName) \ - ( (This)->lpVtbl -> DefineFuncAsDllEntry(This,index,szDllName,szProcName) ) - -#define ICreateTypeInfo_SetFuncDocString(This,index,szDocString) \ - ( (This)->lpVtbl -> SetFuncDocString(This,index,szDocString) ) - -#define ICreateTypeInfo_SetVarDocString(This,index,szDocString) \ - ( (This)->lpVtbl -> SetVarDocString(This,index,szDocString) ) - -#define ICreateTypeInfo_SetFuncHelpContext(This,index,dwHelpContext) \ - ( (This)->lpVtbl -> SetFuncHelpContext(This,index,dwHelpContext) ) - -#define ICreateTypeInfo_SetVarHelpContext(This,index,dwHelpContext) \ - ( (This)->lpVtbl -> SetVarHelpContext(This,index,dwHelpContext) ) - -#define ICreateTypeInfo_SetMops(This,index,bstrMops) \ - ( (This)->lpVtbl -> SetMops(This,index,bstrMops) ) - -#define ICreateTypeInfo_SetTypeIdldesc(This,pIdlDesc) \ - ( (This)->lpVtbl -> SetTypeIdldesc(This,pIdlDesc) ) - -#define ICreateTypeInfo_LayOut(This) \ - ( (This)->lpVtbl -> LayOut(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICreateTypeInfo_INTERFACE_DEFINED__ */ - - -#ifndef __ICreateTypeInfo2_INTERFACE_DEFINED__ -#define __ICreateTypeInfo2_INTERFACE_DEFINED__ - -/* interface ICreateTypeInfo2 */ -/* [local][unique][uuid][object] */ - -typedef /* [unique] */ ICreateTypeInfo2 *LPCREATETYPEINFO2; - - -EXTERN_C const IID IID_ICreateTypeInfo2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0002040E-0000-0000-C000-000000000046") - ICreateTypeInfo2 : public ICreateTypeInfo - { - public: - virtual HRESULT STDMETHODCALLTYPE DeleteFuncDesc( - /* [in] */ UINT index) = 0; - - virtual HRESULT STDMETHODCALLTYPE DeleteFuncDescByMemId( - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind) = 0; - - virtual HRESULT STDMETHODCALLTYPE DeleteVarDesc( - /* [in] */ UINT index) = 0; - - virtual HRESULT STDMETHODCALLTYPE DeleteVarDescByMemId( - /* [in] */ MEMBERID memid) = 0; - - virtual HRESULT STDMETHODCALLTYPE DeleteImplType( - /* [in] */ UINT index) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetCustData( - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFuncCustData( - /* [in] */ UINT index, - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetParamCustData( - /* [in] */ UINT indexFunc, - /* [in] */ UINT indexParam, - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVarCustData( - /* [in] */ UINT index, - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetImplTypeCustData( - /* [in] */ UINT index, - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext( - /* [in] */ ULONG dwHelpStringContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFuncHelpStringContext( - /* [in] */ UINT index, - /* [in] */ ULONG dwHelpStringContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVarHelpStringContext( - /* [in] */ UINT index, - /* [in] */ ULONG dwHelpStringContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE Invalidate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetName( - /* [annotation][in] */ - __RPC__in LPOLESTR szName) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICreateTypeInfo2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICreateTypeInfo2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICreateTypeInfo2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICreateTypeInfo2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetGuid )( - ICreateTypeInfo2 * This, - /* [in] */ REFGUID guid); - - HRESULT ( STDMETHODCALLTYPE *SetTypeFlags )( - ICreateTypeInfo2 * This, - /* [in] */ UINT uTypeFlags); - - HRESULT ( STDMETHODCALLTYPE *SetDocString )( - ICreateTypeInfo2 * This, - /* [annotation][in] */ - __RPC__in LPOLESTR pStrDoc); - - HRESULT ( STDMETHODCALLTYPE *SetHelpContext )( - ICreateTypeInfo2 * This, - /* [in] */ DWORD dwHelpContext); - - HRESULT ( STDMETHODCALLTYPE *SetVersion )( - ICreateTypeInfo2 * This, - /* [in] */ WORD wMajorVerNum, - /* [in] */ WORD wMinorVerNum); - - HRESULT ( STDMETHODCALLTYPE *AddRefTypeInfo )( - ICreateTypeInfo2 * This, - /* [in] */ ITypeInfo *pTInfo, - /* [in] */ HREFTYPE *phRefType); - - HRESULT ( STDMETHODCALLTYPE *AddFuncDesc )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ FUNCDESC *pFuncDesc); - - HRESULT ( STDMETHODCALLTYPE *AddImplType )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ HREFTYPE hRefType); - - HRESULT ( STDMETHODCALLTYPE *SetImplTypeFlags )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ INT implTypeFlags); - - HRESULT ( STDMETHODCALLTYPE *SetAlignment )( - ICreateTypeInfo2 * This, - /* [in] */ WORD cbAlignment); - - HRESULT ( STDMETHODCALLTYPE *SetSchema )( - ICreateTypeInfo2 * This, - /* [annotation][in] */ - __RPC__in LPOLESTR pStrSchema); - - HRESULT ( STDMETHODCALLTYPE *AddVarDesc )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ VARDESC *pVarDesc); - - HRESULT ( STDMETHODCALLTYPE *SetFuncAndParamNames )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [annotation][in][size_is][in] */ - __RPC__in_ecount(cNames) LPOLESTR *rgszNames, - /* [in] */ UINT cNames); - - HRESULT ( STDMETHODCALLTYPE *SetVarName )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szName); - - HRESULT ( STDMETHODCALLTYPE *SetTypeDescAlias )( - ICreateTypeInfo2 * This, - /* [in] */ TYPEDESC *pTDescAlias); - - HRESULT ( STDMETHODCALLTYPE *DefineFuncAsDllEntry )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szDllName, - /* [annotation][in] */ - __RPC__in LPOLESTR szProcName); - - HRESULT ( STDMETHODCALLTYPE *SetFuncDocString )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szDocString); - - HRESULT ( STDMETHODCALLTYPE *SetVarDocString )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [annotation][in] */ - __RPC__in LPOLESTR szDocString); - - HRESULT ( STDMETHODCALLTYPE *SetFuncHelpContext )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ DWORD dwHelpContext); - - HRESULT ( STDMETHODCALLTYPE *SetVarHelpContext )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ DWORD dwHelpContext); - - HRESULT ( STDMETHODCALLTYPE *SetMops )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [annotation][in] */ - _In_ BSTR bstrMops); - - HRESULT ( STDMETHODCALLTYPE *SetTypeIdldesc )( - ICreateTypeInfo2 * This, - /* [in] */ IDLDESC *pIdlDesc); - - HRESULT ( STDMETHODCALLTYPE *LayOut )( - ICreateTypeInfo2 * This); - - HRESULT ( STDMETHODCALLTYPE *DeleteFuncDesc )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index); - - HRESULT ( STDMETHODCALLTYPE *DeleteFuncDescByMemId )( - ICreateTypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind); - - HRESULT ( STDMETHODCALLTYPE *DeleteVarDesc )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index); - - HRESULT ( STDMETHODCALLTYPE *DeleteVarDescByMemId )( - ICreateTypeInfo2 * This, - /* [in] */ MEMBERID memid); - - HRESULT ( STDMETHODCALLTYPE *DeleteImplType )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index); - - HRESULT ( STDMETHODCALLTYPE *SetCustData )( - ICreateTypeInfo2 * This, - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal); - - HRESULT ( STDMETHODCALLTYPE *SetFuncCustData )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal); - - HRESULT ( STDMETHODCALLTYPE *SetParamCustData )( - ICreateTypeInfo2 * This, - /* [in] */ UINT indexFunc, - /* [in] */ UINT indexParam, - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal); - - HRESULT ( STDMETHODCALLTYPE *SetVarCustData )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal); - - HRESULT ( STDMETHODCALLTYPE *SetImplTypeCustData )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal); - - HRESULT ( STDMETHODCALLTYPE *SetHelpStringContext )( - ICreateTypeInfo2 * This, - /* [in] */ ULONG dwHelpStringContext); - - HRESULT ( STDMETHODCALLTYPE *SetFuncHelpStringContext )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ ULONG dwHelpStringContext); - - HRESULT ( STDMETHODCALLTYPE *SetVarHelpStringContext )( - ICreateTypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ ULONG dwHelpStringContext); - - HRESULT ( STDMETHODCALLTYPE *Invalidate )( - ICreateTypeInfo2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ICreateTypeInfo2 * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szName); - - END_INTERFACE - } ICreateTypeInfo2Vtbl; - - interface ICreateTypeInfo2 - { - CONST_VTBL struct ICreateTypeInfo2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICreateTypeInfo2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICreateTypeInfo2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICreateTypeInfo2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICreateTypeInfo2_SetGuid(This,guid) \ - ( (This)->lpVtbl -> SetGuid(This,guid) ) - -#define ICreateTypeInfo2_SetTypeFlags(This,uTypeFlags) \ - ( (This)->lpVtbl -> SetTypeFlags(This,uTypeFlags) ) - -#define ICreateTypeInfo2_SetDocString(This,pStrDoc) \ - ( (This)->lpVtbl -> SetDocString(This,pStrDoc) ) - -#define ICreateTypeInfo2_SetHelpContext(This,dwHelpContext) \ - ( (This)->lpVtbl -> SetHelpContext(This,dwHelpContext) ) - -#define ICreateTypeInfo2_SetVersion(This,wMajorVerNum,wMinorVerNum) \ - ( (This)->lpVtbl -> SetVersion(This,wMajorVerNum,wMinorVerNum) ) - -#define ICreateTypeInfo2_AddRefTypeInfo(This,pTInfo,phRefType) \ - ( (This)->lpVtbl -> AddRefTypeInfo(This,pTInfo,phRefType) ) - -#define ICreateTypeInfo2_AddFuncDesc(This,index,pFuncDesc) \ - ( (This)->lpVtbl -> AddFuncDesc(This,index,pFuncDesc) ) - -#define ICreateTypeInfo2_AddImplType(This,index,hRefType) \ - ( (This)->lpVtbl -> AddImplType(This,index,hRefType) ) - -#define ICreateTypeInfo2_SetImplTypeFlags(This,index,implTypeFlags) \ - ( (This)->lpVtbl -> SetImplTypeFlags(This,index,implTypeFlags) ) - -#define ICreateTypeInfo2_SetAlignment(This,cbAlignment) \ - ( (This)->lpVtbl -> SetAlignment(This,cbAlignment) ) - -#define ICreateTypeInfo2_SetSchema(This,pStrSchema) \ - ( (This)->lpVtbl -> SetSchema(This,pStrSchema) ) - -#define ICreateTypeInfo2_AddVarDesc(This,index,pVarDesc) \ - ( (This)->lpVtbl -> AddVarDesc(This,index,pVarDesc) ) - -#define ICreateTypeInfo2_SetFuncAndParamNames(This,index,rgszNames,cNames) \ - ( (This)->lpVtbl -> SetFuncAndParamNames(This,index,rgszNames,cNames) ) - -#define ICreateTypeInfo2_SetVarName(This,index,szName) \ - ( (This)->lpVtbl -> SetVarName(This,index,szName) ) - -#define ICreateTypeInfo2_SetTypeDescAlias(This,pTDescAlias) \ - ( (This)->lpVtbl -> SetTypeDescAlias(This,pTDescAlias) ) - -#define ICreateTypeInfo2_DefineFuncAsDllEntry(This,index,szDllName,szProcName) \ - ( (This)->lpVtbl -> DefineFuncAsDllEntry(This,index,szDllName,szProcName) ) - -#define ICreateTypeInfo2_SetFuncDocString(This,index,szDocString) \ - ( (This)->lpVtbl -> SetFuncDocString(This,index,szDocString) ) - -#define ICreateTypeInfo2_SetVarDocString(This,index,szDocString) \ - ( (This)->lpVtbl -> SetVarDocString(This,index,szDocString) ) - -#define ICreateTypeInfo2_SetFuncHelpContext(This,index,dwHelpContext) \ - ( (This)->lpVtbl -> SetFuncHelpContext(This,index,dwHelpContext) ) - -#define ICreateTypeInfo2_SetVarHelpContext(This,index,dwHelpContext) \ - ( (This)->lpVtbl -> SetVarHelpContext(This,index,dwHelpContext) ) - -#define ICreateTypeInfo2_SetMops(This,index,bstrMops) \ - ( (This)->lpVtbl -> SetMops(This,index,bstrMops) ) - -#define ICreateTypeInfo2_SetTypeIdldesc(This,pIdlDesc) \ - ( (This)->lpVtbl -> SetTypeIdldesc(This,pIdlDesc) ) - -#define ICreateTypeInfo2_LayOut(This) \ - ( (This)->lpVtbl -> LayOut(This) ) - - -#define ICreateTypeInfo2_DeleteFuncDesc(This,index) \ - ( (This)->lpVtbl -> DeleteFuncDesc(This,index) ) - -#define ICreateTypeInfo2_DeleteFuncDescByMemId(This,memid,invKind) \ - ( (This)->lpVtbl -> DeleteFuncDescByMemId(This,memid,invKind) ) - -#define ICreateTypeInfo2_DeleteVarDesc(This,index) \ - ( (This)->lpVtbl -> DeleteVarDesc(This,index) ) - -#define ICreateTypeInfo2_DeleteVarDescByMemId(This,memid) \ - ( (This)->lpVtbl -> DeleteVarDescByMemId(This,memid) ) - -#define ICreateTypeInfo2_DeleteImplType(This,index) \ - ( (This)->lpVtbl -> DeleteImplType(This,index) ) - -#define ICreateTypeInfo2_SetCustData(This,guid,pVarVal) \ - ( (This)->lpVtbl -> SetCustData(This,guid,pVarVal) ) - -#define ICreateTypeInfo2_SetFuncCustData(This,index,guid,pVarVal) \ - ( (This)->lpVtbl -> SetFuncCustData(This,index,guid,pVarVal) ) - -#define ICreateTypeInfo2_SetParamCustData(This,indexFunc,indexParam,guid,pVarVal) \ - ( (This)->lpVtbl -> SetParamCustData(This,indexFunc,indexParam,guid,pVarVal) ) - -#define ICreateTypeInfo2_SetVarCustData(This,index,guid,pVarVal) \ - ( (This)->lpVtbl -> SetVarCustData(This,index,guid,pVarVal) ) - -#define ICreateTypeInfo2_SetImplTypeCustData(This,index,guid,pVarVal) \ - ( (This)->lpVtbl -> SetImplTypeCustData(This,index,guid,pVarVal) ) - -#define ICreateTypeInfo2_SetHelpStringContext(This,dwHelpStringContext) \ - ( (This)->lpVtbl -> SetHelpStringContext(This,dwHelpStringContext) ) - -#define ICreateTypeInfo2_SetFuncHelpStringContext(This,index,dwHelpStringContext) \ - ( (This)->lpVtbl -> SetFuncHelpStringContext(This,index,dwHelpStringContext) ) - -#define ICreateTypeInfo2_SetVarHelpStringContext(This,index,dwHelpStringContext) \ - ( (This)->lpVtbl -> SetVarHelpStringContext(This,index,dwHelpStringContext) ) - -#define ICreateTypeInfo2_Invalidate(This) \ - ( (This)->lpVtbl -> Invalidate(This) ) - -#define ICreateTypeInfo2_SetName(This,szName) \ - ( (This)->lpVtbl -> SetName(This,szName) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICreateTypeInfo2_INTERFACE_DEFINED__ */ - - -#ifndef __ICreateTypeLib_INTERFACE_DEFINED__ -#define __ICreateTypeLib_INTERFACE_DEFINED__ - -/* interface ICreateTypeLib */ -/* [local][unique][uuid][object] */ - -typedef /* [unique] */ ICreateTypeLib *LPCREATETYPELIB; - - -EXTERN_C const IID IID_ICreateTypeLib; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00020406-0000-0000-C000-000000000046") - ICreateTypeLib : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateTypeInfo( - /* [annotation][in] */ - __RPC__in LPOLESTR szName, - /* [in] */ TYPEKIND tkind, - /* [out] */ ICreateTypeInfo **ppCTInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetName( - /* [annotation][in] */ - __RPC__in LPOLESTR szName) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVersion( - /* [in] */ WORD wMajorVerNum, - /* [in] */ WORD wMinorVerNum) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetGuid( - /* [in] */ REFGUID guid) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDocString( - /* [annotation][in] */ - __RPC__in LPOLESTR szDoc) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetHelpFileName( - /* [annotation][in] */ - __RPC__in LPOLESTR szHelpFileName) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetHelpContext( - /* [in] */ DWORD dwHelpContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetLcid( - /* [in] */ LCID lcid) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetLibFlags( - /* [in] */ UINT uLibFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE SaveAllChanges( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICreateTypeLibVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICreateTypeLib * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICreateTypeLib * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICreateTypeLib * This); - - HRESULT ( STDMETHODCALLTYPE *CreateTypeInfo )( - ICreateTypeLib * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szName, - /* [in] */ TYPEKIND tkind, - /* [out] */ ICreateTypeInfo **ppCTInfo); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ICreateTypeLib * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szName); - - HRESULT ( STDMETHODCALLTYPE *SetVersion )( - ICreateTypeLib * This, - /* [in] */ WORD wMajorVerNum, - /* [in] */ WORD wMinorVerNum); - - HRESULT ( STDMETHODCALLTYPE *SetGuid )( - ICreateTypeLib * This, - /* [in] */ REFGUID guid); - - HRESULT ( STDMETHODCALLTYPE *SetDocString )( - ICreateTypeLib * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szDoc); - - HRESULT ( STDMETHODCALLTYPE *SetHelpFileName )( - ICreateTypeLib * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szHelpFileName); - - HRESULT ( STDMETHODCALLTYPE *SetHelpContext )( - ICreateTypeLib * This, - /* [in] */ DWORD dwHelpContext); - - HRESULT ( STDMETHODCALLTYPE *SetLcid )( - ICreateTypeLib * This, - /* [in] */ LCID lcid); - - HRESULT ( STDMETHODCALLTYPE *SetLibFlags )( - ICreateTypeLib * This, - /* [in] */ UINT uLibFlags); - - HRESULT ( STDMETHODCALLTYPE *SaveAllChanges )( - ICreateTypeLib * This); - - END_INTERFACE - } ICreateTypeLibVtbl; - - interface ICreateTypeLib - { - CONST_VTBL struct ICreateTypeLibVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICreateTypeLib_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICreateTypeLib_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICreateTypeLib_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICreateTypeLib_CreateTypeInfo(This,szName,tkind,ppCTInfo) \ - ( (This)->lpVtbl -> CreateTypeInfo(This,szName,tkind,ppCTInfo) ) - -#define ICreateTypeLib_SetName(This,szName) \ - ( (This)->lpVtbl -> SetName(This,szName) ) - -#define ICreateTypeLib_SetVersion(This,wMajorVerNum,wMinorVerNum) \ - ( (This)->lpVtbl -> SetVersion(This,wMajorVerNum,wMinorVerNum) ) - -#define ICreateTypeLib_SetGuid(This,guid) \ - ( (This)->lpVtbl -> SetGuid(This,guid) ) - -#define ICreateTypeLib_SetDocString(This,szDoc) \ - ( (This)->lpVtbl -> SetDocString(This,szDoc) ) - -#define ICreateTypeLib_SetHelpFileName(This,szHelpFileName) \ - ( (This)->lpVtbl -> SetHelpFileName(This,szHelpFileName) ) - -#define ICreateTypeLib_SetHelpContext(This,dwHelpContext) \ - ( (This)->lpVtbl -> SetHelpContext(This,dwHelpContext) ) - -#define ICreateTypeLib_SetLcid(This,lcid) \ - ( (This)->lpVtbl -> SetLcid(This,lcid) ) - -#define ICreateTypeLib_SetLibFlags(This,uLibFlags) \ - ( (This)->lpVtbl -> SetLibFlags(This,uLibFlags) ) - -#define ICreateTypeLib_SaveAllChanges(This) \ - ( (This)->lpVtbl -> SaveAllChanges(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICreateTypeLib_INTERFACE_DEFINED__ */ - - -#ifndef __ICreateTypeLib2_INTERFACE_DEFINED__ -#define __ICreateTypeLib2_INTERFACE_DEFINED__ - -/* interface ICreateTypeLib2 */ -/* [local][unique][uuid][object] */ - -typedef /* [unique] */ ICreateTypeLib2 *LPCREATETYPELIB2; - - -EXTERN_C const IID IID_ICreateTypeLib2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0002040F-0000-0000-C000-000000000046") - ICreateTypeLib2 : public ICreateTypeLib - { - public: - virtual HRESULT STDMETHODCALLTYPE DeleteTypeInfo( - /* [annotation][in] */ - __RPC__in LPOLESTR szName) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetCustData( - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext( - /* [in] */ ULONG dwHelpStringContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetHelpStringDll( - /* [annotation][in] */ - __RPC__in LPOLESTR szFileName) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICreateTypeLib2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICreateTypeLib2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICreateTypeLib2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICreateTypeLib2 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateTypeInfo )( - ICreateTypeLib2 * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szName, - /* [in] */ TYPEKIND tkind, - /* [out] */ ICreateTypeInfo **ppCTInfo); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ICreateTypeLib2 * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szName); - - HRESULT ( STDMETHODCALLTYPE *SetVersion )( - ICreateTypeLib2 * This, - /* [in] */ WORD wMajorVerNum, - /* [in] */ WORD wMinorVerNum); - - HRESULT ( STDMETHODCALLTYPE *SetGuid )( - ICreateTypeLib2 * This, - /* [in] */ REFGUID guid); - - HRESULT ( STDMETHODCALLTYPE *SetDocString )( - ICreateTypeLib2 * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szDoc); - - HRESULT ( STDMETHODCALLTYPE *SetHelpFileName )( - ICreateTypeLib2 * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szHelpFileName); - - HRESULT ( STDMETHODCALLTYPE *SetHelpContext )( - ICreateTypeLib2 * This, - /* [in] */ DWORD dwHelpContext); - - HRESULT ( STDMETHODCALLTYPE *SetLcid )( - ICreateTypeLib2 * This, - /* [in] */ LCID lcid); - - HRESULT ( STDMETHODCALLTYPE *SetLibFlags )( - ICreateTypeLib2 * This, - /* [in] */ UINT uLibFlags); - - HRESULT ( STDMETHODCALLTYPE *SaveAllChanges )( - ICreateTypeLib2 * This); - - HRESULT ( STDMETHODCALLTYPE *DeleteTypeInfo )( - ICreateTypeLib2 * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szName); - - HRESULT ( STDMETHODCALLTYPE *SetCustData )( - ICreateTypeLib2 * This, - /* [in] */ REFGUID guid, - /* [in] */ VARIANT *pVarVal); - - HRESULT ( STDMETHODCALLTYPE *SetHelpStringContext )( - ICreateTypeLib2 * This, - /* [in] */ ULONG dwHelpStringContext); - - HRESULT ( STDMETHODCALLTYPE *SetHelpStringDll )( - ICreateTypeLib2 * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szFileName); - - END_INTERFACE - } ICreateTypeLib2Vtbl; - - interface ICreateTypeLib2 - { - CONST_VTBL struct ICreateTypeLib2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICreateTypeLib2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICreateTypeLib2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICreateTypeLib2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICreateTypeLib2_CreateTypeInfo(This,szName,tkind,ppCTInfo) \ - ( (This)->lpVtbl -> CreateTypeInfo(This,szName,tkind,ppCTInfo) ) - -#define ICreateTypeLib2_SetName(This,szName) \ - ( (This)->lpVtbl -> SetName(This,szName) ) - -#define ICreateTypeLib2_SetVersion(This,wMajorVerNum,wMinorVerNum) \ - ( (This)->lpVtbl -> SetVersion(This,wMajorVerNum,wMinorVerNum) ) - -#define ICreateTypeLib2_SetGuid(This,guid) \ - ( (This)->lpVtbl -> SetGuid(This,guid) ) - -#define ICreateTypeLib2_SetDocString(This,szDoc) \ - ( (This)->lpVtbl -> SetDocString(This,szDoc) ) - -#define ICreateTypeLib2_SetHelpFileName(This,szHelpFileName) \ - ( (This)->lpVtbl -> SetHelpFileName(This,szHelpFileName) ) - -#define ICreateTypeLib2_SetHelpContext(This,dwHelpContext) \ - ( (This)->lpVtbl -> SetHelpContext(This,dwHelpContext) ) - -#define ICreateTypeLib2_SetLcid(This,lcid) \ - ( (This)->lpVtbl -> SetLcid(This,lcid) ) - -#define ICreateTypeLib2_SetLibFlags(This,uLibFlags) \ - ( (This)->lpVtbl -> SetLibFlags(This,uLibFlags) ) - -#define ICreateTypeLib2_SaveAllChanges(This) \ - ( (This)->lpVtbl -> SaveAllChanges(This) ) - - -#define ICreateTypeLib2_DeleteTypeInfo(This,szName) \ - ( (This)->lpVtbl -> DeleteTypeInfo(This,szName) ) - -#define ICreateTypeLib2_SetCustData(This,guid,pVarVal) \ - ( (This)->lpVtbl -> SetCustData(This,guid,pVarVal) ) - -#define ICreateTypeLib2_SetHelpStringContext(This,dwHelpStringContext) \ - ( (This)->lpVtbl -> SetHelpStringContext(This,dwHelpStringContext) ) - -#define ICreateTypeLib2_SetHelpStringDll(This,szFileName) \ - ( (This)->lpVtbl -> SetHelpStringDll(This,szFileName) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICreateTypeLib2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_oaidl_0000_0005 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0005_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0005_v0_0_s_ifspec; - -#ifndef __IDispatch_INTERFACE_DEFINED__ -#define __IDispatch_INTERFACE_DEFINED__ - -/* interface IDispatch */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IDispatch *LPDISPATCH; - -/* DISPID reserved to indicate an "unknown" name */ -/* only reserved for data members (properties); reused as a method dispid below */ -#define DISPID_UNKNOWN ( -1 ) - -/* DISPID reserved for the "value" property */ -#define DISPID_VALUE ( 0 ) - -/* The following DISPID is reserved to indicate the param - * that is the right-hand-side (or "put" value) of a PropertyPut - */ -#define DISPID_PROPERTYPUT ( -3 ) - -/* DISPID reserved for the standard "NewEnum" method */ -#define DISPID_NEWENUM ( -4 ) - -/* DISPID reserved for the standard "Evaluate" method */ -#define DISPID_EVALUATE ( -5 ) - -#define DISPID_CONSTRUCTOR ( -6 ) - -#define DISPID_DESTRUCTOR ( -7 ) - -#define DISPID_COLLECT ( -8 ) - -/* The range -500 through -999 is reserved for Controls */ -/* The range 0x80010000 through 0x8001FFFF is reserved for Controls */ -/* The range -5000 through -5499 is reserved for ActiveX Accessability */ -/* The range -2000 through -2499 is reserved for VB5 */ -/* The range -3900 through -3999 is reserved for Forms */ -/* The range -5500 through -5550 is reserved for Forms */ -/* The remainder of the negative DISPIDs are reserved for future use */ - -EXTERN_C const IID IID_IDispatch; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00020400-0000-0000-C000-000000000046") - IDispatch : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount( - /* [out] */ __RPC__out UINT *pctinfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeInfo( - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames( - /* [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) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Invoke( - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDispatchVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IDispatch * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IDispatch * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IDispatch * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - __RPC__in IDispatch * This, - /* [out] */ __RPC__out UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - __RPC__in IDispatch * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - __RPC__in IDispatch * 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 )( - IDispatch * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - END_INTERFACE - } IDispatchVtbl; - - interface IDispatch - { - CONST_VTBL struct IDispatchVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDispatch_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDispatch_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDispatch_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDispatch_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IDispatch_RemoteInvoke_Proxy( - __RPC__in IDispatch * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ __RPC__in REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ DWORD dwFlags, - /* [in] */ __RPC__in DISPPARAMS *pDispParams, - /* [out] */ __RPC__out VARIANT *pVarResult, - /* [out] */ __RPC__out EXCEPINFO *pExcepInfo, - /* [out] */ __RPC__out UINT *pArgErr, - /* [in] */ UINT cVarRef, - /* [size_is][in] */ __RPC__in_ecount_full(cVarRef) UINT *rgVarRefIdx, - /* [size_is][out][in] */ __RPC__inout_ecount_full(cVarRef) VARIANTARG *rgVarRef); - - -void __RPC_STUB IDispatch_RemoteInvoke_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IDispatch_INTERFACE_DEFINED__ */ - - -#ifndef __IEnumVARIANT_INTERFACE_DEFINED__ -#define __IEnumVARIANT_INTERFACE_DEFINED__ - -/* interface IEnumVARIANT */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumVARIANT *LPENUMVARIANT; - - -EXTERN_C const IID IID_IEnumVARIANT; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00020404-0000-0000-C000-000000000046") - IEnumVARIANT : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ VARIANT *rgVar, - /* [out] */ ULONG *pCeltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumVARIANT **ppEnum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumVARIANTVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumVARIANT * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnumVARIANT * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnumVARIANT * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumVARIANT * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ VARIANT *rgVar, - /* [out] */ ULONG *pCeltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - __RPC__in IEnumVARIANT * This, - /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in IEnumVARIANT * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - __RPC__in IEnumVARIANT * This, - /* [out] */ __RPC__deref_out_opt IEnumVARIANT **ppEnum); - - END_INTERFACE - } IEnumVARIANTVtbl; - - interface IEnumVARIANT - { - CONST_VTBL struct IEnumVARIANTVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumVARIANT_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumVARIANT_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumVARIANT_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumVARIANT_Next(This,celt,rgVar,pCeltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgVar,pCeltFetched) ) - -#define IEnumVARIANT_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumVARIANT_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumVARIANT_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumVARIANT_RemoteNext_Proxy( - __RPC__in IEnumVARIANT * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pCeltFetched) VARIANT *rgVar, - /* [out] */ __RPC__out ULONG *pCeltFetched); - - -void __RPC_STUB IEnumVARIANT_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumVARIANT_INTERFACE_DEFINED__ */ - - -#ifndef __ITypeComp_INTERFACE_DEFINED__ -#define __ITypeComp_INTERFACE_DEFINED__ - -/* interface ITypeComp */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer ITypeComp *LPTYPECOMP; - -typedef /* [v1_enum] */ -enum tagDESCKIND - { - DESCKIND_NONE = 0, - DESCKIND_FUNCDESC = ( DESCKIND_NONE + 1 ) , - DESCKIND_VARDESC = ( DESCKIND_FUNCDESC + 1 ) , - DESCKIND_TYPECOMP = ( DESCKIND_VARDESC + 1 ) , - DESCKIND_IMPLICITAPPOBJ = ( DESCKIND_TYPECOMP + 1 ) , - DESCKIND_MAX = ( DESCKIND_IMPLICITAPPOBJ + 1 ) - } DESCKIND; - -typedef union tagBINDPTR - { - FUNCDESC *lpfuncdesc; - VARDESC *lpvardesc; - ITypeComp *lptcomp; - } BINDPTR; - -typedef union tagBINDPTR *LPBINDPTR; - - -EXTERN_C const IID IID_ITypeComp; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00020403-0000-0000-C000-000000000046") - ITypeComp : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Bind( - /* [annotation][in] */ - __RPC__in LPOLESTR szName, - /* [in] */ ULONG lHashVal, - /* [in] */ WORD wFlags, - /* [out] */ ITypeInfo **ppTInfo, - /* [out] */ DESCKIND *pDescKind, - /* [out] */ BINDPTR *pBindPtr) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE BindType( - /* [annotation][in] */ - __RPC__in LPOLESTR szName, - /* [in] */ ULONG lHashVal, - /* [out] */ ITypeInfo **ppTInfo, - /* [out] */ ITypeComp **ppTComp) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeCompVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ITypeComp * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **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; - - interface ITypeComp - { - CONST_VTBL struct ITypeCompVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeComp_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeComp_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeComp_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeComp_Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr) \ - ( (This)->lpVtbl -> Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr) ) - -#define ITypeComp_BindType(This,szName,lHashVal,ppTInfo,ppTComp) \ - ( (This)->lpVtbl -> BindType(This,szName,lHashVal,ppTInfo,ppTComp) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBind_Proxy( - __RPC__in ITypeComp * This, - /* [in] */ __RPC__in LPOLESTR szName, - /* [in] */ ULONG lHashVal, - /* [in] */ WORD wFlags, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo, - /* [out] */ __RPC__out DESCKIND *pDescKind, - /* [out] */ __RPC__deref_out_opt LPFUNCDESC *ppFuncDesc, - /* [out] */ __RPC__deref_out_opt LPVARDESC *ppVarDesc, - /* [out] */ __RPC__deref_out_opt ITypeComp **ppTypeComp, - /* [out] */ __RPC__out CLEANLOCALSTORAGE *pDummy); - - -void __RPC_STUB ITypeComp_RemoteBind_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBindType_Proxy( - __RPC__in ITypeComp * This, - /* [in] */ __RPC__in LPOLESTR szName, - /* [in] */ ULONG lHashVal, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo); - - -void __RPC_STUB ITypeComp_RemoteBindType_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ITypeComp_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_oaidl_0000_0008 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0008_v0_0_s_ifspec; - -#ifndef __ITypeInfo_INTERFACE_DEFINED__ -#define __ITypeInfo_INTERFACE_DEFINED__ - -/* interface ITypeInfo */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer ITypeInfo *LPTYPEINFO; - - -EXTERN_C const IID IID_ITypeInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00020401-0000-0000-C000-000000000046") - ITypeInfo : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetTypeAttr( - /* [out] */ TYPEATTR **ppTypeAttr) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeComp( - /* [out] */ __RPC__deref_out_opt ITypeComp **ppTComp) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetFuncDesc( - /* [in] */ UINT index, - /* [out] */ FUNCDESC **ppFuncDesc) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetVarDesc( - /* [in] */ UINT index, - /* [out] */ VARDESC **ppVarDesc) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetNames( - /* [in] */ MEMBERID memid, - /* [annotation][length_is][size_is][out] */ - __RPC__out_ecount_part(cMaxNames, *pcNames) BSTR *rgBstrNames, - /* [in] */ UINT cMaxNames, - /* [annotation][out] */ - __RPC__out UINT *pcNames) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRefTypeOfImplType( - /* [in] */ UINT index, - /* [out] */ __RPC__out HREFTYPE *pRefType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetImplTypeFlags( - /* [in] */ UINT index, - /* [out] */ __RPC__out INT *pImplTypeFlags) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetIDsOfNames( - /* [annotation][size_is][in] */ - __RPC__in_ecount(cNames) LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [size_is][out] */ MEMBERID *pMemId) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Invoke( - /* [in] */ PVOID pvInstance, - /* [in] */ MEMBERID memid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDocumentation( - /* [in] */ MEMBERID memid, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrName, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDocString, - /* [out] */ DWORD *pdwHelpContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrHelpFile) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDllEntry( - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDllName, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrName, - /* [out] */ WORD *pwOrdinal) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRefTypeInfo( - /* [in] */ HREFTYPE hRefType, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE AddressOfMember( - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind, - /* [out] */ PVOID *ppv) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateInstance( - /* [in] */ IUnknown *pUnkOuter, - /* [in] */ REFIID riid, - /* [iid_is][out] */ PVOID *ppvObj) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMops( - /* [in] */ MEMBERID memid, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrMops) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetContainingTypeLib( - /* [out] */ ITypeLib **ppTLib, - /* [out] */ UINT *pIndex) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE ReleaseTypeAttr( - /* [in] */ TYPEATTR *pTypeAttr) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE ReleaseFuncDesc( - /* [in] */ FUNCDESC *pFuncDesc) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE ReleaseVarDesc( - /* [in] */ VARDESC *pVarDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ITypeInfo * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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, - /* [annotation][length_is][size_is][out] */ - __RPC__out_ecount_part(cMaxNames, *pcNames) BSTR *rgBstrNames, - /* [in] */ UINT cMaxNames, - /* [annotation][out] */ - __RPC__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, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrName, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDocString, - /* [out] */ DWORD *pdwHelpContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrHelpFile); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDllEntry )( - ITypeInfo * This, - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDllName, - /* [annotation][out] */ - _Outptr_opt_ 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] */ void ( STDMETHODCALLTYPE *ReleaseTypeAttr )( - ITypeInfo * This, - /* [in] */ TYPEATTR *pTypeAttr); - - /* [local] */ void ( STDMETHODCALLTYPE *ReleaseFuncDesc )( - ITypeInfo * This, - /* [in] */ FUNCDESC *pFuncDesc); - - /* [local] */ void ( STDMETHODCALLTYPE *ReleaseVarDesc )( - ITypeInfo * This, - /* [in] */ VARDESC *pVarDesc); - - END_INTERFACE - } ITypeInfoVtbl; - - interface ITypeInfo - { - CONST_VTBL struct ITypeInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeInfo_GetTypeAttr(This,ppTypeAttr) \ - ( (This)->lpVtbl -> GetTypeAttr(This,ppTypeAttr) ) - -#define ITypeInfo_GetTypeComp(This,ppTComp) \ - ( (This)->lpVtbl -> GetTypeComp(This,ppTComp) ) - -#define ITypeInfo_GetFuncDesc(This,index,ppFuncDesc) \ - ( (This)->lpVtbl -> GetFuncDesc(This,index,ppFuncDesc) ) - -#define ITypeInfo_GetVarDesc(This,index,ppVarDesc) \ - ( (This)->lpVtbl -> GetVarDesc(This,index,ppVarDesc) ) - -#define ITypeInfo_GetNames(This,memid,rgBstrNames,cMaxNames,pcNames) \ - ( (This)->lpVtbl -> GetNames(This,memid,rgBstrNames,cMaxNames,pcNames) ) - -#define ITypeInfo_GetRefTypeOfImplType(This,index,pRefType) \ - ( (This)->lpVtbl -> GetRefTypeOfImplType(This,index,pRefType) ) - -#define ITypeInfo_GetImplTypeFlags(This,index,pImplTypeFlags) \ - ( (This)->lpVtbl -> GetImplTypeFlags(This,index,pImplTypeFlags) ) - -#define ITypeInfo_GetIDsOfNames(This,rgszNames,cNames,pMemId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,rgszNames,cNames,pMemId) ) - -#define ITypeInfo_Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - -#define ITypeInfo_GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) \ - ( (This)->lpVtbl -> GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) ) - -#define ITypeInfo_GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal) \ - ( (This)->lpVtbl -> GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal) ) - -#define ITypeInfo_GetRefTypeInfo(This,hRefType,ppTInfo) \ - ( (This)->lpVtbl -> GetRefTypeInfo(This,hRefType,ppTInfo) ) - -#define ITypeInfo_AddressOfMember(This,memid,invKind,ppv) \ - ( (This)->lpVtbl -> AddressOfMember(This,memid,invKind,ppv) ) - -#define ITypeInfo_CreateInstance(This,pUnkOuter,riid,ppvObj) \ - ( (This)->lpVtbl -> CreateInstance(This,pUnkOuter,riid,ppvObj) ) - -#define ITypeInfo_GetMops(This,memid,pBstrMops) \ - ( (This)->lpVtbl -> GetMops(This,memid,pBstrMops) ) - -#define ITypeInfo_GetContainingTypeLib(This,ppTLib,pIndex) \ - ( (This)->lpVtbl -> GetContainingTypeLib(This,ppTLib,pIndex) ) - -#define ITypeInfo_ReleaseTypeAttr(This,pTypeAttr) \ - ( (This)->lpVtbl -> ReleaseTypeAttr(This,pTypeAttr) ) - -#define ITypeInfo_ReleaseFuncDesc(This,pFuncDesc) \ - ( (This)->lpVtbl -> ReleaseFuncDesc(This,pFuncDesc) ) - -#define ITypeInfo_ReleaseVarDesc(This,pVarDesc) \ - ( (This)->lpVtbl -> ReleaseVarDesc(This,pVarDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetTypeAttr_Proxy( - __RPC__in ITypeInfo * This, - /* [out] */ __RPC__deref_out_opt LPTYPEATTR *ppTypeAttr, - /* [out] */ __RPC__out CLEANLOCALSTORAGE *pDummy); - - -void __RPC_STUB ITypeInfo_RemoteGetTypeAttr_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetFuncDesc_Proxy( - __RPC__in ITypeInfo * This, - /* [in] */ UINT index, - /* [out] */ __RPC__deref_out_opt LPFUNCDESC *ppFuncDesc, - /* [out] */ __RPC__out CLEANLOCALSTORAGE *pDummy); - - -void __RPC_STUB ITypeInfo_RemoteGetFuncDesc_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetVarDesc_Proxy( - __RPC__in ITypeInfo * This, - /* [in] */ UINT index, - /* [out] */ __RPC__deref_out_opt LPVARDESC *ppVarDesc, - /* [out] */ __RPC__out CLEANLOCALSTORAGE *pDummy); - - -void __RPC_STUB ITypeInfo_RemoteGetVarDesc_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetNames_Proxy( - __RPC__in ITypeInfo * This, - /* [in] */ MEMBERID memid, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cMaxNames, *pcNames) BSTR *rgBstrNames, - /* [in] */ UINT cMaxNames, - /* [out] */ __RPC__out UINT *pcNames); - - -void __RPC_STUB ITypeInfo_RemoteGetNames_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_LocalGetIDsOfNames_Proxy( - __RPC__in ITypeInfo * This); - - -void __RPC_STUB ITypeInfo_LocalGetIDsOfNames_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_LocalInvoke_Proxy( - __RPC__in ITypeInfo * This); - - -void __RPC_STUB ITypeInfo_LocalInvoke_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetDocumentation_Proxy( - __RPC__in ITypeInfo * This, - /* [in] */ MEMBERID memid, - /* [in] */ DWORD refPtrFlags, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrName, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrDocString, - /* [out] */ __RPC__out DWORD *pdwHelpContext, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrHelpFile); - - -void __RPC_STUB ITypeInfo_RemoteGetDocumentation_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetDllEntry_Proxy( - __RPC__in ITypeInfo * This, - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind, - /* [in] */ DWORD refPtrFlags, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrDllName, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrName, - /* [out] */ __RPC__out WORD *pwOrdinal); - - -void __RPC_STUB ITypeInfo_RemoteGetDllEntry_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_LocalAddressOfMember_Proxy( - __RPC__in ITypeInfo * This); - - -void __RPC_STUB ITypeInfo_LocalAddressOfMember_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteCreateInstance_Proxy( - __RPC__in ITypeInfo * This, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObj); - - -void __RPC_STUB ITypeInfo_RemoteCreateInstance_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetContainingTypeLib_Proxy( - __RPC__in ITypeInfo * This, - /* [out] */ __RPC__deref_out_opt ITypeLib **ppTLib, - /* [out] */ __RPC__out UINT *pIndex); - - -void __RPC_STUB ITypeInfo_RemoteGetContainingTypeLib_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseTypeAttr_Proxy( - __RPC__in ITypeInfo * This); - - -void __RPC_STUB ITypeInfo_LocalReleaseTypeAttr_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseFuncDesc_Proxy( - __RPC__in ITypeInfo * This); - - -void __RPC_STUB ITypeInfo_LocalReleaseFuncDesc_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseVarDesc_Proxy( - __RPC__in ITypeInfo * This); - - -void __RPC_STUB ITypeInfo_LocalReleaseVarDesc_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ITypeInfo_INTERFACE_DEFINED__ */ - - -#ifndef __ITypeInfo2_INTERFACE_DEFINED__ -#define __ITypeInfo2_INTERFACE_DEFINED__ - -/* interface ITypeInfo2 */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer ITypeInfo2 *LPTYPEINFO2; - - -EXTERN_C const IID IID_ITypeInfo2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00020412-0000-0000-C000-000000000046") - ITypeInfo2 : public ITypeInfo - { - public: - virtual HRESULT STDMETHODCALLTYPE GetTypeKind( - /* [out] */ __RPC__out TYPEKIND *pTypeKind) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeFlags( - /* [out] */ __RPC__out ULONG *pTypeFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFuncIndexOfMemId( - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind, - /* [out] */ __RPC__out UINT *pFuncIndex) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVarIndexOfMemId( - /* [in] */ MEMBERID memid, - /* [out] */ __RPC__out UINT *pVarIndex) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCustData( - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFuncCustData( - /* [in] */ UINT index, - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetParamCustData( - /* [in] */ UINT indexFunc, - /* [in] */ UINT indexParam, - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVarCustData( - /* [in] */ UINT index, - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetImplTypeCustData( - /* [in] */ UINT index, - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDocumentation2( - /* [in] */ MEMBERID memid, - /* [in] */ LCID lcid, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpString, - /* [out] */ DWORD *pdwHelpStringContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpStringDll) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAllCustData( - /* [out] */ __RPC__out CUSTDATA *pCustData) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAllFuncCustData( - /* [in] */ UINT index, - /* [out] */ __RPC__out CUSTDATA *pCustData) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAllParamCustData( - /* [in] */ UINT indexFunc, - /* [in] */ UINT indexParam, - /* [out] */ __RPC__out CUSTDATA *pCustData) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAllVarCustData( - /* [in] */ UINT index, - /* [out] */ __RPC__out CUSTDATA *pCustData) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAllImplTypeCustData( - /* [in] */ UINT index, - /* [out] */ __RPC__out CUSTDATA *pCustData) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeInfo2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ITypeInfo2 * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ITypeInfo2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ITypeInfo2 * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetTypeAttr )( - ITypeInfo2 * This, - /* [out] */ TYPEATTR **ppTypeAttr); - - HRESULT ( STDMETHODCALLTYPE *GetTypeComp )( - __RPC__in ITypeInfo2 * This, - /* [out] */ __RPC__deref_out_opt ITypeComp **ppTComp); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetFuncDesc )( - ITypeInfo2 * This, - /* [in] */ UINT index, - /* [out] */ FUNCDESC **ppFuncDesc); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetVarDesc )( - ITypeInfo2 * This, - /* [in] */ UINT index, - /* [out] */ VARDESC **ppVarDesc); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetNames )( - ITypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [annotation][length_is][size_is][out] */ - __RPC__out_ecount_part(cMaxNames, *pcNames) BSTR *rgBstrNames, - /* [in] */ UINT cMaxNames, - /* [annotation][out] */ - __RPC__out UINT *pcNames); - - HRESULT ( STDMETHODCALLTYPE *GetRefTypeOfImplType )( - __RPC__in ITypeInfo2 * This, - /* [in] */ UINT index, - /* [out] */ __RPC__out HREFTYPE *pRefType); - - HRESULT ( STDMETHODCALLTYPE *GetImplTypeFlags )( - __RPC__in ITypeInfo2 * This, - /* [in] */ UINT index, - /* [out] */ __RPC__out INT *pImplTypeFlags); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - ITypeInfo2 * This, - /* [annotation][size_is][in] */ - __RPC__in_ecount(cNames) LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [size_is][out] */ MEMBERID *pMemId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - ITypeInfo2 * 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 )( - ITypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrName, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDocString, - /* [out] */ DWORD *pdwHelpContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrHelpFile); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDllEntry )( - ITypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDllName, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrName, - /* [out] */ WORD *pwOrdinal); - - HRESULT ( STDMETHODCALLTYPE *GetRefTypeInfo )( - __RPC__in ITypeInfo2 * This, - /* [in] */ HREFTYPE hRefType, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *AddressOfMember )( - ITypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind, - /* [out] */ PVOID *ppv); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateInstance )( - ITypeInfo2 * This, - /* [in] */ IUnknown *pUnkOuter, - /* [in] */ REFIID riid, - /* [iid_is][out] */ PVOID *ppvObj); - - HRESULT ( STDMETHODCALLTYPE *GetMops )( - __RPC__in ITypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrMops); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetContainingTypeLib )( - ITypeInfo2 * This, - /* [out] */ ITypeLib **ppTLib, - /* [out] */ UINT *pIndex); - - /* [local] */ void ( STDMETHODCALLTYPE *ReleaseTypeAttr )( - ITypeInfo2 * This, - /* [in] */ TYPEATTR *pTypeAttr); - - /* [local] */ void ( STDMETHODCALLTYPE *ReleaseFuncDesc )( - ITypeInfo2 * This, - /* [in] */ FUNCDESC *pFuncDesc); - - /* [local] */ void ( STDMETHODCALLTYPE *ReleaseVarDesc )( - ITypeInfo2 * This, - /* [in] */ VARDESC *pVarDesc); - - HRESULT ( STDMETHODCALLTYPE *GetTypeKind )( - __RPC__in ITypeInfo2 * This, - /* [out] */ __RPC__out TYPEKIND *pTypeKind); - - HRESULT ( STDMETHODCALLTYPE *GetTypeFlags )( - __RPC__in ITypeInfo2 * This, - /* [out] */ __RPC__out ULONG *pTypeFlags); - - HRESULT ( STDMETHODCALLTYPE *GetFuncIndexOfMemId )( - __RPC__in ITypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind, - /* [out] */ __RPC__out UINT *pFuncIndex); - - HRESULT ( STDMETHODCALLTYPE *GetVarIndexOfMemId )( - __RPC__in ITypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [out] */ __RPC__out UINT *pVarIndex); - - HRESULT ( STDMETHODCALLTYPE *GetCustData )( - __RPC__in ITypeInfo2 * This, - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal); - - HRESULT ( STDMETHODCALLTYPE *GetFuncCustData )( - __RPC__in ITypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal); - - HRESULT ( STDMETHODCALLTYPE *GetParamCustData )( - __RPC__in ITypeInfo2 * This, - /* [in] */ UINT indexFunc, - /* [in] */ UINT indexParam, - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal); - - HRESULT ( STDMETHODCALLTYPE *GetVarCustData )( - __RPC__in ITypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal); - - HRESULT ( STDMETHODCALLTYPE *GetImplTypeCustData )( - __RPC__in ITypeInfo2 * This, - /* [in] */ UINT index, - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDocumentation2 )( - ITypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [in] */ LCID lcid, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpString, - /* [out] */ DWORD *pdwHelpStringContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpStringDll); - - HRESULT ( STDMETHODCALLTYPE *GetAllCustData )( - __RPC__in ITypeInfo2 * This, - /* [out] */ __RPC__out CUSTDATA *pCustData); - - HRESULT ( STDMETHODCALLTYPE *GetAllFuncCustData )( - __RPC__in ITypeInfo2 * This, - /* [in] */ UINT index, - /* [out] */ __RPC__out CUSTDATA *pCustData); - - HRESULT ( STDMETHODCALLTYPE *GetAllParamCustData )( - __RPC__in ITypeInfo2 * This, - /* [in] */ UINT indexFunc, - /* [in] */ UINT indexParam, - /* [out] */ __RPC__out CUSTDATA *pCustData); - - HRESULT ( STDMETHODCALLTYPE *GetAllVarCustData )( - __RPC__in ITypeInfo2 * This, - /* [in] */ UINT index, - /* [out] */ __RPC__out CUSTDATA *pCustData); - - HRESULT ( STDMETHODCALLTYPE *GetAllImplTypeCustData )( - __RPC__in ITypeInfo2 * This, - /* [in] */ UINT index, - /* [out] */ __RPC__out CUSTDATA *pCustData); - - END_INTERFACE - } ITypeInfo2Vtbl; - - interface ITypeInfo2 - { - CONST_VTBL struct ITypeInfo2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeInfo2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeInfo2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeInfo2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeInfo2_GetTypeAttr(This,ppTypeAttr) \ - ( (This)->lpVtbl -> GetTypeAttr(This,ppTypeAttr) ) - -#define ITypeInfo2_GetTypeComp(This,ppTComp) \ - ( (This)->lpVtbl -> GetTypeComp(This,ppTComp) ) - -#define ITypeInfo2_GetFuncDesc(This,index,ppFuncDesc) \ - ( (This)->lpVtbl -> GetFuncDesc(This,index,ppFuncDesc) ) - -#define ITypeInfo2_GetVarDesc(This,index,ppVarDesc) \ - ( (This)->lpVtbl -> GetVarDesc(This,index,ppVarDesc) ) - -#define ITypeInfo2_GetNames(This,memid,rgBstrNames,cMaxNames,pcNames) \ - ( (This)->lpVtbl -> GetNames(This,memid,rgBstrNames,cMaxNames,pcNames) ) - -#define ITypeInfo2_GetRefTypeOfImplType(This,index,pRefType) \ - ( (This)->lpVtbl -> GetRefTypeOfImplType(This,index,pRefType) ) - -#define ITypeInfo2_GetImplTypeFlags(This,index,pImplTypeFlags) \ - ( (This)->lpVtbl -> GetImplTypeFlags(This,index,pImplTypeFlags) ) - -#define ITypeInfo2_GetIDsOfNames(This,rgszNames,cNames,pMemId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,rgszNames,cNames,pMemId) ) - -#define ITypeInfo2_Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - -#define ITypeInfo2_GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) \ - ( (This)->lpVtbl -> GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) ) - -#define ITypeInfo2_GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal) \ - ( (This)->lpVtbl -> GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal) ) - -#define ITypeInfo2_GetRefTypeInfo(This,hRefType,ppTInfo) \ - ( (This)->lpVtbl -> GetRefTypeInfo(This,hRefType,ppTInfo) ) - -#define ITypeInfo2_AddressOfMember(This,memid,invKind,ppv) \ - ( (This)->lpVtbl -> AddressOfMember(This,memid,invKind,ppv) ) - -#define ITypeInfo2_CreateInstance(This,pUnkOuter,riid,ppvObj) \ - ( (This)->lpVtbl -> CreateInstance(This,pUnkOuter,riid,ppvObj) ) - -#define ITypeInfo2_GetMops(This,memid,pBstrMops) \ - ( (This)->lpVtbl -> GetMops(This,memid,pBstrMops) ) - -#define ITypeInfo2_GetContainingTypeLib(This,ppTLib,pIndex) \ - ( (This)->lpVtbl -> GetContainingTypeLib(This,ppTLib,pIndex) ) - -#define ITypeInfo2_ReleaseTypeAttr(This,pTypeAttr) \ - ( (This)->lpVtbl -> ReleaseTypeAttr(This,pTypeAttr) ) - -#define ITypeInfo2_ReleaseFuncDesc(This,pFuncDesc) \ - ( (This)->lpVtbl -> ReleaseFuncDesc(This,pFuncDesc) ) - -#define ITypeInfo2_ReleaseVarDesc(This,pVarDesc) \ - ( (This)->lpVtbl -> ReleaseVarDesc(This,pVarDesc) ) - - -#define ITypeInfo2_GetTypeKind(This,pTypeKind) \ - ( (This)->lpVtbl -> GetTypeKind(This,pTypeKind) ) - -#define ITypeInfo2_GetTypeFlags(This,pTypeFlags) \ - ( (This)->lpVtbl -> GetTypeFlags(This,pTypeFlags) ) - -#define ITypeInfo2_GetFuncIndexOfMemId(This,memid,invKind,pFuncIndex) \ - ( (This)->lpVtbl -> GetFuncIndexOfMemId(This,memid,invKind,pFuncIndex) ) - -#define ITypeInfo2_GetVarIndexOfMemId(This,memid,pVarIndex) \ - ( (This)->lpVtbl -> GetVarIndexOfMemId(This,memid,pVarIndex) ) - -#define ITypeInfo2_GetCustData(This,guid,pVarVal) \ - ( (This)->lpVtbl -> GetCustData(This,guid,pVarVal) ) - -#define ITypeInfo2_GetFuncCustData(This,index,guid,pVarVal) \ - ( (This)->lpVtbl -> GetFuncCustData(This,index,guid,pVarVal) ) - -#define ITypeInfo2_GetParamCustData(This,indexFunc,indexParam,guid,pVarVal) \ - ( (This)->lpVtbl -> GetParamCustData(This,indexFunc,indexParam,guid,pVarVal) ) - -#define ITypeInfo2_GetVarCustData(This,index,guid,pVarVal) \ - ( (This)->lpVtbl -> GetVarCustData(This,index,guid,pVarVal) ) - -#define ITypeInfo2_GetImplTypeCustData(This,index,guid,pVarVal) \ - ( (This)->lpVtbl -> GetImplTypeCustData(This,index,guid,pVarVal) ) - -#define ITypeInfo2_GetDocumentation2(This,memid,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) \ - ( (This)->lpVtbl -> GetDocumentation2(This,memid,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) ) - -#define ITypeInfo2_GetAllCustData(This,pCustData) \ - ( (This)->lpVtbl -> GetAllCustData(This,pCustData) ) - -#define ITypeInfo2_GetAllFuncCustData(This,index,pCustData) \ - ( (This)->lpVtbl -> GetAllFuncCustData(This,index,pCustData) ) - -#define ITypeInfo2_GetAllParamCustData(This,indexFunc,indexParam,pCustData) \ - ( (This)->lpVtbl -> GetAllParamCustData(This,indexFunc,indexParam,pCustData) ) - -#define ITypeInfo2_GetAllVarCustData(This,index,pCustData) \ - ( (This)->lpVtbl -> GetAllVarCustData(This,index,pCustData) ) - -#define ITypeInfo2_GetAllImplTypeCustData(This,index,pCustData) \ - ( (This)->lpVtbl -> GetAllImplTypeCustData(This,index,pCustData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo2_RemoteGetDocumentation2_Proxy( - __RPC__in ITypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [in] */ LCID lcid, - /* [in] */ DWORD refPtrFlags, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrHelpString, - /* [out] */ __RPC__out DWORD *pdwHelpStringContext, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrHelpStringDll); - - -void __RPC_STUB ITypeInfo2_RemoteGetDocumentation2_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ITypeInfo2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_oaidl_0000_0010 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0010_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0010_v0_0_s_ifspec; - -#ifndef __ITypeLib_INTERFACE_DEFINED__ -#define __ITypeLib_INTERFACE_DEFINED__ - -/* interface ITypeLib */ -/* [unique][uuid][object] */ - -typedef /* [v1_enum] */ -enum tagSYSKIND - { - SYS_WIN16 = 0, - SYS_WIN32 = ( SYS_WIN16 + 1 ) , - SYS_MAC = ( SYS_WIN32 + 1 ) , - SYS_WIN64 = ( SYS_MAC + 1 ) - } SYSKIND; - -typedef /* [v1_enum] */ -enum tagLIBFLAGS - { - LIBFLAG_FRESTRICTED = 0x1, - LIBFLAG_FCONTROL = 0x2, - LIBFLAG_FHIDDEN = 0x4, - LIBFLAG_FHASDISKIMAGE = 0x8 - } LIBFLAGS; - -typedef /* [unique] */ __RPC_unique_pointer ITypeLib *LPTYPELIB; - -typedef struct tagTLIBATTR - { - GUID guid; - LCID lcid; - SYSKIND syskind; - WORD wMajorVerNum; - WORD wMinorVerNum; - WORD wLibFlags; - } TLIBATTR; - -typedef struct tagTLIBATTR *LPTLIBATTR; - - -EXTERN_C const IID IID_ITypeLib; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00020402-0000-0000-C000-000000000046") - ITypeLib : public IUnknown - { - public: - virtual /* [local] */ UINT STDMETHODCALLTYPE GetTypeInfoCount( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeInfo( - /* [in] */ UINT index, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeInfoType( - /* [in] */ UINT index, - /* [out] */ __RPC__out TYPEKIND *pTKind) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeInfoOfGuid( - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTinfo) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetLibAttr( - /* [out] */ TLIBATTR **ppTLibAttr) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeComp( - /* [out] */ __RPC__deref_out_opt ITypeComp **ppTComp) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDocumentation( - /* [in] */ INT index, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrName, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDocString, - /* [out] */ DWORD *pdwHelpContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrHelpFile) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE IsName( - /* [annotation][out][in] */ - __RPC__inout LPOLESTR szNameBuf, - /* [in] */ ULONG lHashVal, - /* [out] */ BOOL *pfName) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE FindName( - /* [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) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE ReleaseTLibAttr( - /* [in] */ TLIBATTR *pTLibAttr) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeLibVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ITypeLib * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrName, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDocString, - /* [out] */ DWORD *pdwHelpContext, - /* [annotation][out] */ - _Outptr_opt_ 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] */ void ( STDMETHODCALLTYPE *ReleaseTLibAttr )( - ITypeLib * This, - /* [in] */ TLIBATTR *pTLibAttr); - - END_INTERFACE - } ITypeLibVtbl; - - interface ITypeLib - { - CONST_VTBL struct ITypeLibVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeLib_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeLib_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeLib_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeLib_GetTypeInfoCount(This) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This) ) - -#define ITypeLib_GetTypeInfo(This,index,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,index,ppTInfo) ) - -#define ITypeLib_GetTypeInfoType(This,index,pTKind) \ - ( (This)->lpVtbl -> GetTypeInfoType(This,index,pTKind) ) - -#define ITypeLib_GetTypeInfoOfGuid(This,guid,ppTinfo) \ - ( (This)->lpVtbl -> GetTypeInfoOfGuid(This,guid,ppTinfo) ) - -#define ITypeLib_GetLibAttr(This,ppTLibAttr) \ - ( (This)->lpVtbl -> GetLibAttr(This,ppTLibAttr) ) - -#define ITypeLib_GetTypeComp(This,ppTComp) \ - ( (This)->lpVtbl -> GetTypeComp(This,ppTComp) ) - -#define ITypeLib_GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) \ - ( (This)->lpVtbl -> GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) ) - -#define ITypeLib_IsName(This,szNameBuf,lHashVal,pfName) \ - ( (This)->lpVtbl -> IsName(This,szNameBuf,lHashVal,pfName) ) - -#define ITypeLib_FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) \ - ( (This)->lpVtbl -> FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) ) - -#define ITypeLib_ReleaseTLibAttr(This,pTLibAttr) \ - ( (This)->lpVtbl -> ReleaseTLibAttr(This,pTLibAttr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetTypeInfoCount_Proxy( - __RPC__in ITypeLib * This, - /* [out] */ __RPC__out UINT *pcTInfo); - - -void __RPC_STUB ITypeLib_RemoteGetTypeInfoCount_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetLibAttr_Proxy( - __RPC__in ITypeLib * This, - /* [out] */ __RPC__deref_out_opt LPTLIBATTR *ppTLibAttr, - /* [out] */ __RPC__out CLEANLOCALSTORAGE *pDummy); - - -void __RPC_STUB ITypeLib_RemoteGetLibAttr_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetDocumentation_Proxy( - __RPC__in ITypeLib * This, - /* [in] */ INT index, - /* [in] */ DWORD refPtrFlags, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrName, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrDocString, - /* [out] */ __RPC__out DWORD *pdwHelpContext, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrHelpFile); - - -void __RPC_STUB ITypeLib_RemoteGetDocumentation_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_RemoteIsName_Proxy( - __RPC__in ITypeLib * This, - /* [in] */ __RPC__in LPOLESTR szNameBuf, - /* [in] */ ULONG lHashVal, - /* [out] */ __RPC__out BOOL *pfName, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrLibName); - - -void __RPC_STUB ITypeLib_RemoteIsName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_RemoteFindName_Proxy( - __RPC__in ITypeLib * This, - /* [in] */ __RPC__in LPOLESTR szNameBuf, - /* [in] */ ULONG lHashVal, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(*pcFound, *pcFound) ITypeInfo **ppTInfo, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(*pcFound, *pcFound) MEMBERID *rgMemId, - /* [out][in] */ __RPC__inout USHORT *pcFound, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrLibName); - - -void __RPC_STUB ITypeLib_RemoteFindName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_LocalReleaseTLibAttr_Proxy( - __RPC__in ITypeLib * This); - - -void __RPC_STUB ITypeLib_LocalReleaseTLibAttr_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ITypeLib_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_oaidl_0000_0011 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0011_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0011_v0_0_s_ifspec; - -#ifndef __ITypeLib2_INTERFACE_DEFINED__ -#define __ITypeLib2_INTERFACE_DEFINED__ - -/* interface ITypeLib2 */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer ITypeLib2 *LPTYPELIB2; - - -EXTERN_C const IID IID_ITypeLib2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00020411-0000-0000-C000-000000000046") - ITypeLib2 : public ITypeLib - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCustData( - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetLibStatistics( - /* [out] */ ULONG *pcUniqueNames, - /* [out] */ ULONG *pcchUniqueNames) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDocumentation2( - /* [in] */ INT index, - /* [in] */ LCID lcid, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpString, - /* [out] */ DWORD *pdwHelpStringContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpStringDll) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAllCustData( - /* [out] */ __RPC__out CUSTDATA *pCustData) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeLib2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ITypeLib2 * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ITypeLib2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ITypeLib2 * This); - - /* [local] */ UINT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - ITypeLib2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - __RPC__in ITypeLib2 * This, - /* [in] */ UINT index, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoType )( - __RPC__in ITypeLib2 * This, - /* [in] */ UINT index, - /* [out] */ __RPC__out TYPEKIND *pTKind); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoOfGuid )( - __RPC__in ITypeLib2 * This, - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTinfo); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetLibAttr )( - ITypeLib2 * This, - /* [out] */ TLIBATTR **ppTLibAttr); - - HRESULT ( STDMETHODCALLTYPE *GetTypeComp )( - __RPC__in ITypeLib2 * This, - /* [out] */ __RPC__deref_out_opt ITypeComp **ppTComp); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDocumentation )( - ITypeLib2 * This, - /* [in] */ INT index, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrName, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDocString, - /* [out] */ DWORD *pdwHelpContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrHelpFile); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsName )( - ITypeLib2 * This, - /* [annotation][out][in] */ - __RPC__inout LPOLESTR szNameBuf, - /* [in] */ ULONG lHashVal, - /* [out] */ BOOL *pfName); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *FindName )( - ITypeLib2 * 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] */ void ( STDMETHODCALLTYPE *ReleaseTLibAttr )( - ITypeLib2 * This, - /* [in] */ TLIBATTR *pTLibAttr); - - HRESULT ( STDMETHODCALLTYPE *GetCustData )( - __RPC__in ITypeLib2 * This, - /* [in] */ __RPC__in REFGUID guid, - /* [out] */ __RPC__out VARIANT *pVarVal); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetLibStatistics )( - ITypeLib2 * This, - /* [out] */ ULONG *pcUniqueNames, - /* [out] */ ULONG *pcchUniqueNames); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDocumentation2 )( - ITypeLib2 * This, - /* [in] */ INT index, - /* [in] */ LCID lcid, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpString, - /* [out] */ DWORD *pdwHelpStringContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpStringDll); - - HRESULT ( STDMETHODCALLTYPE *GetAllCustData )( - __RPC__in ITypeLib2 * This, - /* [out] */ __RPC__out CUSTDATA *pCustData); - - END_INTERFACE - } ITypeLib2Vtbl; - - interface ITypeLib2 - { - CONST_VTBL struct ITypeLib2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeLib2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeLib2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeLib2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeLib2_GetTypeInfoCount(This) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This) ) - -#define ITypeLib2_GetTypeInfo(This,index,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,index,ppTInfo) ) - -#define ITypeLib2_GetTypeInfoType(This,index,pTKind) \ - ( (This)->lpVtbl -> GetTypeInfoType(This,index,pTKind) ) - -#define ITypeLib2_GetTypeInfoOfGuid(This,guid,ppTinfo) \ - ( (This)->lpVtbl -> GetTypeInfoOfGuid(This,guid,ppTinfo) ) - -#define ITypeLib2_GetLibAttr(This,ppTLibAttr) \ - ( (This)->lpVtbl -> GetLibAttr(This,ppTLibAttr) ) - -#define ITypeLib2_GetTypeComp(This,ppTComp) \ - ( (This)->lpVtbl -> GetTypeComp(This,ppTComp) ) - -#define ITypeLib2_GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) \ - ( (This)->lpVtbl -> GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) ) - -#define ITypeLib2_IsName(This,szNameBuf,lHashVal,pfName) \ - ( (This)->lpVtbl -> IsName(This,szNameBuf,lHashVal,pfName) ) - -#define ITypeLib2_FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) \ - ( (This)->lpVtbl -> FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) ) - -#define ITypeLib2_ReleaseTLibAttr(This,pTLibAttr) \ - ( (This)->lpVtbl -> ReleaseTLibAttr(This,pTLibAttr) ) - - -#define ITypeLib2_GetCustData(This,guid,pVarVal) \ - ( (This)->lpVtbl -> GetCustData(This,guid,pVarVal) ) - -#define ITypeLib2_GetLibStatistics(This,pcUniqueNames,pcchUniqueNames) \ - ( (This)->lpVtbl -> GetLibStatistics(This,pcUniqueNames,pcchUniqueNames) ) - -#define ITypeLib2_GetDocumentation2(This,index,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) \ - ( (This)->lpVtbl -> GetDocumentation2(This,index,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) ) - -#define ITypeLib2_GetAllCustData(This,pCustData) \ - ( (This)->lpVtbl -> GetAllCustData(This,pCustData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib2_RemoteGetLibStatistics_Proxy( - __RPC__in ITypeLib2 * This, - /* [out] */ __RPC__out ULONG *pcUniqueNames, - /* [out] */ __RPC__out ULONG *pcchUniqueNames); - - -void __RPC_STUB ITypeLib2_RemoteGetLibStatistics_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib2_RemoteGetDocumentation2_Proxy( - __RPC__in ITypeLib2 * This, - /* [in] */ INT index, - /* [in] */ LCID lcid, - /* [in] */ DWORD refPtrFlags, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrHelpString, - /* [out] */ __RPC__out DWORD *pdwHelpStringContext, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrHelpStringDll); - - -void __RPC_STUB ITypeLib2_RemoteGetDocumentation2_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ITypeLib2_INTERFACE_DEFINED__ */ - - -#ifndef __ITypeChangeEvents_INTERFACE_DEFINED__ -#define __ITypeChangeEvents_INTERFACE_DEFINED__ - -/* interface ITypeChangeEvents */ -/* [local][unique][uuid][object] */ - -typedef /* [unique] */ ITypeChangeEvents *LPTYPECHANGEEVENTS; - -typedef -enum tagCHANGEKIND - { - CHANGEKIND_ADDMEMBER = 0, - CHANGEKIND_DELETEMEMBER = ( CHANGEKIND_ADDMEMBER + 1 ) , - CHANGEKIND_SETNAMES = ( CHANGEKIND_DELETEMEMBER + 1 ) , - CHANGEKIND_SETDOCUMENTATION = ( CHANGEKIND_SETNAMES + 1 ) , - CHANGEKIND_GENERAL = ( CHANGEKIND_SETDOCUMENTATION + 1 ) , - CHANGEKIND_INVALIDATE = ( CHANGEKIND_GENERAL + 1 ) , - CHANGEKIND_CHANGEFAILED = ( CHANGEKIND_INVALIDATE + 1 ) , - CHANGEKIND_MAX = ( CHANGEKIND_CHANGEFAILED + 1 ) - } CHANGEKIND; - - -EXTERN_C const IID IID_ITypeChangeEvents; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00020410-0000-0000-C000-000000000046") - ITypeChangeEvents : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE RequestTypeChange( - /* [in] */ CHANGEKIND changeKind, - /* [in] */ ITypeInfo *pTInfoBefore, - /* [annotation][in] */ - __RPC__in LPOLESTR pStrName, - /* [out] */ INT *pfCancel) = 0; - - virtual HRESULT STDMETHODCALLTYPE AfterTypeChange( - /* [in] */ CHANGEKIND changeKind, - /* [in] */ ITypeInfo *pTInfoAfter, - /* [annotation][in] */ - __RPC__in LPOLESTR pStrName) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeChangeEventsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ITypeChangeEvents * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ITypeChangeEvents * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ITypeChangeEvents * This); - - HRESULT ( STDMETHODCALLTYPE *RequestTypeChange )( - ITypeChangeEvents * This, - /* [in] */ CHANGEKIND changeKind, - /* [in] */ ITypeInfo *pTInfoBefore, - /* [annotation][in] */ - __RPC__in LPOLESTR pStrName, - /* [out] */ INT *pfCancel); - - HRESULT ( STDMETHODCALLTYPE *AfterTypeChange )( - ITypeChangeEvents * This, - /* [in] */ CHANGEKIND changeKind, - /* [in] */ ITypeInfo *pTInfoAfter, - /* [annotation][in] */ - __RPC__in LPOLESTR pStrName); - - END_INTERFACE - } ITypeChangeEventsVtbl; - - interface ITypeChangeEvents - { - CONST_VTBL struct ITypeChangeEventsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeChangeEvents_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeChangeEvents_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeChangeEvents_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeChangeEvents_RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel) \ - ( (This)->lpVtbl -> RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel) ) - -#define ITypeChangeEvents_AfterTypeChange(This,changeKind,pTInfoAfter,pStrName) \ - ( (This)->lpVtbl -> AfterTypeChange(This,changeKind,pTInfoAfter,pStrName) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ITypeChangeEvents_INTERFACE_DEFINED__ */ - - -#ifndef __IErrorInfo_INTERFACE_DEFINED__ -#define __IErrorInfo_INTERFACE_DEFINED__ - -/* interface IErrorInfo */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IErrorInfo *LPERRORINFO; - - -EXTERN_C const IID IID_IErrorInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1CF2B120-547D-101B-8E65-08002B2BD119") - IErrorInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetGUID( - /* [out] */ __RPC__out GUID *pGUID) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSource( - /* [out] */ __RPC__deref_out_opt BSTR *pBstrSource) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDescription( - /* [out] */ __RPC__deref_out_opt BSTR *pBstrDescription) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHelpFile( - /* [out] */ __RPC__deref_out_opt BSTR *pBstrHelpFile) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHelpContext( - /* [out] */ __RPC__out DWORD *pdwHelpContext) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IErrorInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IErrorInfo * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IErrorInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IErrorInfo * This); - - HRESULT ( STDMETHODCALLTYPE *GetGUID )( - __RPC__in IErrorInfo * This, - /* [out] */ __RPC__out GUID *pGUID); - - HRESULT ( STDMETHODCALLTYPE *GetSource )( - __RPC__in IErrorInfo * This, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrSource); - - HRESULT ( STDMETHODCALLTYPE *GetDescription )( - __RPC__in IErrorInfo * This, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrDescription); - - HRESULT ( STDMETHODCALLTYPE *GetHelpFile )( - __RPC__in IErrorInfo * This, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrHelpFile); - - HRESULT ( STDMETHODCALLTYPE *GetHelpContext )( - __RPC__in IErrorInfo * This, - /* [out] */ __RPC__out DWORD *pdwHelpContext); - - END_INTERFACE - } IErrorInfoVtbl; - - interface IErrorInfo - { - CONST_VTBL struct IErrorInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IErrorInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IErrorInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IErrorInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IErrorInfo_GetGUID(This,pGUID) \ - ( (This)->lpVtbl -> GetGUID(This,pGUID) ) - -#define IErrorInfo_GetSource(This,pBstrSource) \ - ( (This)->lpVtbl -> GetSource(This,pBstrSource) ) - -#define IErrorInfo_GetDescription(This,pBstrDescription) \ - ( (This)->lpVtbl -> GetDescription(This,pBstrDescription) ) - -#define IErrorInfo_GetHelpFile(This,pBstrHelpFile) \ - ( (This)->lpVtbl -> GetHelpFile(This,pBstrHelpFile) ) - -#define IErrorInfo_GetHelpContext(This,pdwHelpContext) \ - ( (This)->lpVtbl -> GetHelpContext(This,pdwHelpContext) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IErrorInfo_INTERFACE_DEFINED__ */ - - -#ifndef __ICreateErrorInfo_INTERFACE_DEFINED__ -#define __ICreateErrorInfo_INTERFACE_DEFINED__ - -/* interface ICreateErrorInfo */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer ICreateErrorInfo *LPCREATEERRORINFO; - - -EXTERN_C const IID IID_ICreateErrorInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("22F03340-547D-101B-8E65-08002B2BD119") - ICreateErrorInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetGUID( - /* [in] */ __RPC__in REFGUID rguid) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetSource( - /* [in] */ __RPC__in LPOLESTR szSource) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDescription( - /* [in] */ __RPC__in LPOLESTR szDescription) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetHelpFile( - /* [in] */ __RPC__in LPOLESTR szHelpFile) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetHelpContext( - /* [in] */ DWORD dwHelpContext) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICreateErrorInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ICreateErrorInfo * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ICreateErrorInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ICreateErrorInfo * This); - - HRESULT ( STDMETHODCALLTYPE *SetGUID )( - __RPC__in ICreateErrorInfo * This, - /* [in] */ __RPC__in REFGUID rguid); - - HRESULT ( STDMETHODCALLTYPE *SetSource )( - __RPC__in ICreateErrorInfo * This, - /* [in] */ __RPC__in LPOLESTR szSource); - - HRESULT ( STDMETHODCALLTYPE *SetDescription )( - __RPC__in ICreateErrorInfo * This, - /* [in] */ __RPC__in LPOLESTR szDescription); - - HRESULT ( STDMETHODCALLTYPE *SetHelpFile )( - __RPC__in ICreateErrorInfo * This, - /* [in] */ __RPC__in LPOLESTR szHelpFile); - - HRESULT ( STDMETHODCALLTYPE *SetHelpContext )( - __RPC__in ICreateErrorInfo * This, - /* [in] */ DWORD dwHelpContext); - - END_INTERFACE - } ICreateErrorInfoVtbl; - - interface ICreateErrorInfo - { - CONST_VTBL struct ICreateErrorInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICreateErrorInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICreateErrorInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICreateErrorInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICreateErrorInfo_SetGUID(This,rguid) \ - ( (This)->lpVtbl -> SetGUID(This,rguid) ) - -#define ICreateErrorInfo_SetSource(This,szSource) \ - ( (This)->lpVtbl -> SetSource(This,szSource) ) - -#define ICreateErrorInfo_SetDescription(This,szDescription) \ - ( (This)->lpVtbl -> SetDescription(This,szDescription) ) - -#define ICreateErrorInfo_SetHelpFile(This,szHelpFile) \ - ( (This)->lpVtbl -> SetHelpFile(This,szHelpFile) ) - -#define ICreateErrorInfo_SetHelpContext(This,dwHelpContext) \ - ( (This)->lpVtbl -> SetHelpContext(This,dwHelpContext) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICreateErrorInfo_INTERFACE_DEFINED__ */ - - -#ifndef __ISupportErrorInfo_INTERFACE_DEFINED__ -#define __ISupportErrorInfo_INTERFACE_DEFINED__ - -/* interface ISupportErrorInfo */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer ISupportErrorInfo *LPSUPPORTERRORINFO; - - -EXTERN_C const IID IID_ISupportErrorInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DF0B3D60-548F-101B-8E65-08002B2BD119") - ISupportErrorInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE InterfaceSupportsErrorInfo( - /* [in] */ __RPC__in REFIID riid) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISupportErrorInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ISupportErrorInfo * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ISupportErrorInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ISupportErrorInfo * This); - - HRESULT ( STDMETHODCALLTYPE *InterfaceSupportsErrorInfo )( - __RPC__in ISupportErrorInfo * This, - /* [in] */ __RPC__in REFIID riid); - - END_INTERFACE - } ISupportErrorInfoVtbl; - - interface ISupportErrorInfo - { - CONST_VTBL struct ISupportErrorInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISupportErrorInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISupportErrorInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISupportErrorInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISupportErrorInfo_InterfaceSupportsErrorInfo(This,riid) \ - ( (This)->lpVtbl -> InterfaceSupportsErrorInfo(This,riid) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISupportErrorInfo_INTERFACE_DEFINED__ */ - - -#ifndef __ITypeFactory_INTERFACE_DEFINED__ -#define __ITypeFactory_INTERFACE_DEFINED__ - -/* interface ITypeFactory */ -/* [uuid][object] */ - - -EXTERN_C const IID IID_ITypeFactory; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000002E-0000-0000-C000-000000000046") - ITypeFactory : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateFromTypeInfo( - /* [in] */ __RPC__in_opt ITypeInfo *pTypeInfo, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppv) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeFactoryVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ITypeFactory * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ITypeFactory * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ITypeFactory * This); - - HRESULT ( STDMETHODCALLTYPE *CreateFromTypeInfo )( - __RPC__in ITypeFactory * This, - /* [in] */ __RPC__in_opt ITypeInfo *pTypeInfo, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppv); - - END_INTERFACE - } ITypeFactoryVtbl; - - interface ITypeFactory - { - CONST_VTBL struct ITypeFactoryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeFactory_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeFactory_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeFactory_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeFactory_CreateFromTypeInfo(This,pTypeInfo,riid,ppv) \ - ( (This)->lpVtbl -> CreateFromTypeInfo(This,pTypeInfo,riid,ppv) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ITypeFactory_INTERFACE_DEFINED__ */ - - -#ifndef __ITypeMarshal_INTERFACE_DEFINED__ -#define __ITypeMarshal_INTERFACE_DEFINED__ - -/* interface ITypeMarshal */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_ITypeMarshal; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000002D-0000-0000-C000-000000000046") - ITypeMarshal : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Size( - /* [in] */ PVOID pvType, - /* [in] */ DWORD dwDestContext, - /* [in] */ PVOID pvDestContext, - /* [out] */ ULONG *pSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE Marshal( - /* [in] */ PVOID pvType, - /* [in] */ DWORD dwDestContext, - /* [in] */ PVOID pvDestContext, - /* [in] */ ULONG cbBufferLength, - /* [annotation][out] */ - _Out_writes_bytes_to_(cbBufferLength, *pcbWritten) BYTE *pBuffer, - /* [annotation][out] */ - _Out_ ULONG *pcbWritten) = 0; - - virtual HRESULT STDMETHODCALLTYPE Unmarshal( - /* [out] */ PVOID pvType, - /* [in] */ DWORD dwFlags, - /* [in] */ ULONG cbBufferLength, - /* [annotation][in] */ - _In_reads_(cbBufferLength) BYTE *pBuffer, - /* [annotation][out] */ - _Out_ ULONG *pcbRead) = 0; - - virtual HRESULT STDMETHODCALLTYPE Free( - /* [in] */ PVOID pvType) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeMarshalVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ITypeMarshal * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ITypeMarshal * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ITypeMarshal * This); - - HRESULT ( STDMETHODCALLTYPE *Size )( - ITypeMarshal * This, - /* [in] */ PVOID pvType, - /* [in] */ DWORD dwDestContext, - /* [in] */ PVOID pvDestContext, - /* [out] */ ULONG *pSize); - - HRESULT ( STDMETHODCALLTYPE *Marshal )( - ITypeMarshal * This, - /* [in] */ PVOID pvType, - /* [in] */ DWORD dwDestContext, - /* [in] */ PVOID pvDestContext, - /* [in] */ ULONG cbBufferLength, - /* [annotation][out] */ - _Out_writes_bytes_to_(cbBufferLength, *pcbWritten) BYTE *pBuffer, - /* [annotation][out] */ - _Out_ ULONG *pcbWritten); - - HRESULT ( STDMETHODCALLTYPE *Unmarshal )( - ITypeMarshal * This, - /* [out] */ PVOID pvType, - /* [in] */ DWORD dwFlags, - /* [in] */ ULONG cbBufferLength, - /* [annotation][in] */ - _In_reads_(cbBufferLength) BYTE *pBuffer, - /* [annotation][out] */ - _Out_ ULONG *pcbRead); - - HRESULT ( STDMETHODCALLTYPE *Free )( - ITypeMarshal * This, - /* [in] */ PVOID pvType); - - END_INTERFACE - } ITypeMarshalVtbl; - - interface ITypeMarshal - { - CONST_VTBL struct ITypeMarshalVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeMarshal_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeMarshal_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeMarshal_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeMarshal_Size(This,pvType,dwDestContext,pvDestContext,pSize) \ - ( (This)->lpVtbl -> Size(This,pvType,dwDestContext,pvDestContext,pSize) ) - -#define ITypeMarshal_Marshal(This,pvType,dwDestContext,pvDestContext,cbBufferLength,pBuffer,pcbWritten) \ - ( (This)->lpVtbl -> Marshal(This,pvType,dwDestContext,pvDestContext,cbBufferLength,pBuffer,pcbWritten) ) - -#define ITypeMarshal_Unmarshal(This,pvType,dwFlags,cbBufferLength,pBuffer,pcbRead) \ - ( (This)->lpVtbl -> Unmarshal(This,pvType,dwFlags,cbBufferLength,pBuffer,pcbRead) ) - -#define ITypeMarshal_Free(This,pvType) \ - ( (This)->lpVtbl -> Free(This,pvType) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ITypeMarshal_INTERFACE_DEFINED__ */ - - -#ifndef __IRecordInfo_INTERFACE_DEFINED__ -#define __IRecordInfo_INTERFACE_DEFINED__ - -/* interface IRecordInfo */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IRecordInfo *LPRECORDINFO; - - -EXTERN_C const IID IID_IRecordInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000002F-0000-0000-C000-000000000046") - IRecordInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE RecordInit( - /* [out] */ PVOID pvNew) = 0; - - virtual HRESULT STDMETHODCALLTYPE RecordClear( - /* [in] */ PVOID pvExisting) = 0; - - virtual HRESULT STDMETHODCALLTYPE RecordCopy( - /* [in] */ PVOID pvExisting, - /* [out] */ PVOID pvNew) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGuid( - /* [out] */ GUID *pguid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( - /* [annotation][out] */ - __RPC__deref_out_opt BSTR *pbstrName) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( - /* [out] */ ULONG *pcbSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeInfo( - /* [out] */ ITypeInfo **ppTypeInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetField( - /* [in] */ PVOID pvData, - /* [in] */ LPCOLESTR szFieldName, - /* [out] */ VARIANT *pvarField) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFieldNoCopy( - /* [in] */ PVOID pvData, - /* [in] */ LPCOLESTR szFieldName, - /* [out] */ VARIANT *pvarField, - /* [out] */ PVOID *ppvDataCArray) = 0; - - virtual HRESULT STDMETHODCALLTYPE PutField( - /* [in] */ ULONG wFlags, - /* [out][in] */ PVOID pvData, - /* [in] */ LPCOLESTR szFieldName, - /* [in] */ VARIANT *pvarField) = 0; - - virtual HRESULT STDMETHODCALLTYPE PutFieldNoCopy( - /* [in] */ ULONG wFlags, - /* [out][in] */ PVOID pvData, - /* [in] */ LPCOLESTR szFieldName, - /* [in] */ VARIANT *pvarField) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFieldNames( - /* [out][in] */ ULONG *pcNames, - /* [annotation][length_is][size_is][out] */ - __RPC__out_ecount_part(*pcNames, *pcNames) BSTR *rgBstrNames) = 0; - - virtual BOOL STDMETHODCALLTYPE IsMatchingType( - /* [in] */ IRecordInfo *pRecordInfo) = 0; - - virtual PVOID STDMETHODCALLTYPE RecordCreate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE RecordCreateCopy( - /* [in] */ PVOID pvSource, - /* [out] */ PVOID *ppvDest) = 0; - - virtual HRESULT STDMETHODCALLTYPE RecordDestroy( - /* [in] */ PVOID pvRecord) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRecordInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRecordInfo * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRecordInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRecordInfo * This); - - HRESULT ( STDMETHODCALLTYPE *RecordInit )( - IRecordInfo * This, - /* [out] */ PVOID pvNew); - - HRESULT ( STDMETHODCALLTYPE *RecordClear )( - IRecordInfo * This, - /* [in] */ PVOID pvExisting); - - HRESULT ( STDMETHODCALLTYPE *RecordCopy )( - IRecordInfo * This, - /* [in] */ PVOID pvExisting, - /* [out] */ PVOID pvNew); - - HRESULT ( STDMETHODCALLTYPE *GetGuid )( - IRecordInfo * This, - /* [out] */ GUID *pguid); - - HRESULT ( STDMETHODCALLTYPE *GetName )( - IRecordInfo * This, - /* [annotation][out] */ - __RPC__deref_out_opt BSTR *pbstrName); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( - IRecordInfo * This, - /* [out] */ ULONG *pcbSize); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IRecordInfo * This, - /* [out] */ ITypeInfo **ppTypeInfo); - - HRESULT ( STDMETHODCALLTYPE *GetField )( - IRecordInfo * This, - /* [in] */ PVOID pvData, - /* [in] */ LPCOLESTR szFieldName, - /* [out] */ VARIANT *pvarField); - - HRESULT ( STDMETHODCALLTYPE *GetFieldNoCopy )( - IRecordInfo * This, - /* [in] */ PVOID pvData, - /* [in] */ LPCOLESTR szFieldName, - /* [out] */ VARIANT *pvarField, - /* [out] */ PVOID *ppvDataCArray); - - HRESULT ( STDMETHODCALLTYPE *PutField )( - IRecordInfo * This, - /* [in] */ ULONG wFlags, - /* [out][in] */ PVOID pvData, - /* [in] */ LPCOLESTR szFieldName, - /* [in] */ VARIANT *pvarField); - - HRESULT ( STDMETHODCALLTYPE *PutFieldNoCopy )( - IRecordInfo * This, - /* [in] */ ULONG wFlags, - /* [out][in] */ PVOID pvData, - /* [in] */ LPCOLESTR szFieldName, - /* [in] */ VARIANT *pvarField); - - HRESULT ( STDMETHODCALLTYPE *GetFieldNames )( - IRecordInfo * This, - /* [out][in] */ ULONG *pcNames, - /* [annotation][length_is][size_is][out] */ - __RPC__out_ecount_part(*pcNames, *pcNames) BSTR *rgBstrNames); - - BOOL ( STDMETHODCALLTYPE *IsMatchingType )( - IRecordInfo * This, - /* [in] */ IRecordInfo *pRecordInfo); - - PVOID ( STDMETHODCALLTYPE *RecordCreate )( - IRecordInfo * This); - - HRESULT ( STDMETHODCALLTYPE *RecordCreateCopy )( - IRecordInfo * This, - /* [in] */ PVOID pvSource, - /* [out] */ PVOID *ppvDest); - - HRESULT ( STDMETHODCALLTYPE *RecordDestroy )( - IRecordInfo * This, - /* [in] */ PVOID pvRecord); - - END_INTERFACE - } IRecordInfoVtbl; - - interface IRecordInfo - { - CONST_VTBL struct IRecordInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRecordInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRecordInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRecordInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRecordInfo_RecordInit(This,pvNew) \ - ( (This)->lpVtbl -> RecordInit(This,pvNew) ) - -#define IRecordInfo_RecordClear(This,pvExisting) \ - ( (This)->lpVtbl -> RecordClear(This,pvExisting) ) - -#define IRecordInfo_RecordCopy(This,pvExisting,pvNew) \ - ( (This)->lpVtbl -> RecordCopy(This,pvExisting,pvNew) ) - -#define IRecordInfo_GetGuid(This,pguid) \ - ( (This)->lpVtbl -> GetGuid(This,pguid) ) - -#define IRecordInfo_GetName(This,pbstrName) \ - ( (This)->lpVtbl -> GetName(This,pbstrName) ) - -#define IRecordInfo_GetSize(This,pcbSize) \ - ( (This)->lpVtbl -> GetSize(This,pcbSize) ) - -#define IRecordInfo_GetTypeInfo(This,ppTypeInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,ppTypeInfo) ) - -#define IRecordInfo_GetField(This,pvData,szFieldName,pvarField) \ - ( (This)->lpVtbl -> GetField(This,pvData,szFieldName,pvarField) ) - -#define IRecordInfo_GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray) \ - ( (This)->lpVtbl -> GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray) ) - -#define IRecordInfo_PutField(This,wFlags,pvData,szFieldName,pvarField) \ - ( (This)->lpVtbl -> PutField(This,wFlags,pvData,szFieldName,pvarField) ) - -#define IRecordInfo_PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField) \ - ( (This)->lpVtbl -> PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField) ) - -#define IRecordInfo_GetFieldNames(This,pcNames,rgBstrNames) \ - ( (This)->lpVtbl -> GetFieldNames(This,pcNames,rgBstrNames) ) - -#define IRecordInfo_IsMatchingType(This,pRecordInfo) \ - ( (This)->lpVtbl -> IsMatchingType(This,pRecordInfo) ) - -#define IRecordInfo_RecordCreate(This) \ - ( (This)->lpVtbl -> RecordCreate(This) ) - -#define IRecordInfo_RecordCreateCopy(This,pvSource,ppvDest) \ - ( (This)->lpVtbl -> RecordCreateCopy(This,pvSource,ppvDest) ) - -#define IRecordInfo_RecordDestroy(This,pvRecord) \ - ( (This)->lpVtbl -> RecordDestroy(This,pvRecord) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRecordInfo_INTERFACE_DEFINED__ */ - - -#ifndef __IErrorLog_INTERFACE_DEFINED__ -#define __IErrorLog_INTERFACE_DEFINED__ - -/* interface IErrorLog */ -/* [unique][uuid][object] */ - -typedef IErrorLog *LPERRORLOG; - - -EXTERN_C const IID IID_IErrorLog; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3127CA40-446E-11CE-8135-00AA004BB851") - IErrorLog : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE AddError( - /* [in] */ __RPC__in LPCOLESTR pszPropName, - /* [in] */ __RPC__in EXCEPINFO *pExcepInfo) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IErrorLogVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IErrorLog * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IErrorLog * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IErrorLog * This); - - HRESULT ( STDMETHODCALLTYPE *AddError )( - __RPC__in IErrorLog * This, - /* [in] */ __RPC__in LPCOLESTR pszPropName, - /* [in] */ __RPC__in EXCEPINFO *pExcepInfo); - - END_INTERFACE - } IErrorLogVtbl; - - interface IErrorLog - { - CONST_VTBL struct IErrorLogVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IErrorLog_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IErrorLog_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IErrorLog_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IErrorLog_AddError(This,pszPropName,pExcepInfo) \ - ( (This)->lpVtbl -> AddError(This,pszPropName,pExcepInfo) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IErrorLog_INTERFACE_DEFINED__ */ - - -#ifndef __IPropertyBag_INTERFACE_DEFINED__ -#define __IPropertyBag_INTERFACE_DEFINED__ - -/* interface IPropertyBag */ -/* [unique][uuid][object] */ - -typedef IPropertyBag *LPPROPERTYBAG; - - -EXTERN_C const IID IID_IPropertyBag; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("55272A00-42CB-11CE-8135-00AA004BB851") - IPropertyBag : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Read( - /* [in] */ LPCOLESTR pszPropName, - /* [out][in] */ VARIANT *pVar, - /* [unique][in] */ IErrorLog *pErrorLog) = 0; - - virtual HRESULT STDMETHODCALLTYPE Write( - /* [in] */ __RPC__in LPCOLESTR pszPropName, - /* [in] */ __RPC__in VARIANT *pVar) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPropertyBagVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPropertyBag * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPropertyBag * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPropertyBag * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )( - IPropertyBag * This, - /* [in] */ LPCOLESTR pszPropName, - /* [out][in] */ VARIANT *pVar, - /* [unique][in] */ IErrorLog *pErrorLog); - - HRESULT ( STDMETHODCALLTYPE *Write )( - __RPC__in IPropertyBag * This, - /* [in] */ __RPC__in LPCOLESTR pszPropName, - /* [in] */ __RPC__in VARIANT *pVar); - - END_INTERFACE - } IPropertyBagVtbl; - - interface IPropertyBag - { - CONST_VTBL struct IPropertyBagVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPropertyBag_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPropertyBag_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPropertyBag_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPropertyBag_Read(This,pszPropName,pVar,pErrorLog) \ - ( (This)->lpVtbl -> Read(This,pszPropName,pVar,pErrorLog) ) - -#define IPropertyBag_Write(This,pszPropName,pVar) \ - ( (This)->lpVtbl -> Write(This,pszPropName,pVar) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IPropertyBag_RemoteRead_Proxy( - __RPC__in IPropertyBag * This, - /* [in] */ __RPC__in LPCOLESTR pszPropName, - /* [out] */ __RPC__out VARIANT *pVar, - /* [unique][in] */ __RPC__in_opt IErrorLog *pErrorLog, - /* [in] */ DWORD varType, - /* [in] */ __RPC__in_opt IUnknown *pUnkObj); - - -void __RPC_STUB IPropertyBag_RemoteRead_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IPropertyBag_INTERFACE_DEFINED__ */ - - -#ifndef __ITypeLibRegistrationReader_INTERFACE_DEFINED__ -#define __ITypeLibRegistrationReader_INTERFACE_DEFINED__ - -/* interface ITypeLibRegistrationReader */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_ITypeLibRegistrationReader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ED6A8A2A-B160-4E77-8F73-AA7435CD5C27") - ITypeLibRegistrationReader : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE EnumTypeLibRegistrations( - /* [out] */ IEnumUnknown **ppEnumUnknown) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeLibRegistrationReaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ITypeLibRegistrationReader * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ITypeLibRegistrationReader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ITypeLibRegistrationReader * This); - - HRESULT ( STDMETHODCALLTYPE *EnumTypeLibRegistrations )( - ITypeLibRegistrationReader * This, - /* [out] */ IEnumUnknown **ppEnumUnknown); - - END_INTERFACE - } ITypeLibRegistrationReaderVtbl; - - interface ITypeLibRegistrationReader - { - CONST_VTBL struct ITypeLibRegistrationReaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeLibRegistrationReader_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeLibRegistrationReader_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeLibRegistrationReader_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeLibRegistrationReader_EnumTypeLibRegistrations(This,ppEnumUnknown) \ - ( (This)->lpVtbl -> EnumTypeLibRegistrations(This,ppEnumUnknown) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ITypeLibRegistrationReader_INTERFACE_DEFINED__ */ - - -#ifndef __ITypeLibRegistration_INTERFACE_DEFINED__ -#define __ITypeLibRegistration_INTERFACE_DEFINED__ - -/* interface ITypeLibRegistration */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_ITypeLibRegistration; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("76A3E735-02DF-4A12-98EB-043AD3600AF3") - ITypeLibRegistration : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetGuid( - /* [out] */ GUID *pGuid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersion( - /* [out] */ BSTR *pVersion) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLcid( - /* [out] */ LCID *pLcid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetWin32Path( - /* [out] */ BSTR *pWin32Path) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetWin64Path( - /* [out] */ BSTR *pWin64Path) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDisplayName( - /* [out] */ BSTR *pDisplayName) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFlags( - /* [out] */ DWORD *pFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHelpDir( - /* [out] */ BSTR *pHelpDir) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeLibRegistrationVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ITypeLibRegistration * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ITypeLibRegistration * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ITypeLibRegistration * This); - - HRESULT ( STDMETHODCALLTYPE *GetGuid )( - ITypeLibRegistration * This, - /* [out] */ GUID *pGuid); - - HRESULT ( STDMETHODCALLTYPE *GetVersion )( - ITypeLibRegistration * This, - /* [out] */ BSTR *pVersion); - - HRESULT ( STDMETHODCALLTYPE *GetLcid )( - ITypeLibRegistration * This, - /* [out] */ LCID *pLcid); - - HRESULT ( STDMETHODCALLTYPE *GetWin32Path )( - ITypeLibRegistration * This, - /* [out] */ BSTR *pWin32Path); - - HRESULT ( STDMETHODCALLTYPE *GetWin64Path )( - ITypeLibRegistration * This, - /* [out] */ BSTR *pWin64Path); - - HRESULT ( STDMETHODCALLTYPE *GetDisplayName )( - ITypeLibRegistration * This, - /* [out] */ BSTR *pDisplayName); - - HRESULT ( STDMETHODCALLTYPE *GetFlags )( - ITypeLibRegistration * This, - /* [out] */ DWORD *pFlags); - - HRESULT ( STDMETHODCALLTYPE *GetHelpDir )( - ITypeLibRegistration * This, - /* [out] */ BSTR *pHelpDir); - - END_INTERFACE - } ITypeLibRegistrationVtbl; - - interface ITypeLibRegistration - { - CONST_VTBL struct ITypeLibRegistrationVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeLibRegistration_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeLibRegistration_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeLibRegistration_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeLibRegistration_GetGuid(This,pGuid) \ - ( (This)->lpVtbl -> GetGuid(This,pGuid) ) - -#define ITypeLibRegistration_GetVersion(This,pVersion) \ - ( (This)->lpVtbl -> GetVersion(This,pVersion) ) - -#define ITypeLibRegistration_GetLcid(This,pLcid) \ - ( (This)->lpVtbl -> GetLcid(This,pLcid) ) - -#define ITypeLibRegistration_GetWin32Path(This,pWin32Path) \ - ( (This)->lpVtbl -> GetWin32Path(This,pWin32Path) ) - -#define ITypeLibRegistration_GetWin64Path(This,pWin64Path) \ - ( (This)->lpVtbl -> GetWin64Path(This,pWin64Path) ) - -#define ITypeLibRegistration_GetDisplayName(This,pDisplayName) \ - ( (This)->lpVtbl -> GetDisplayName(This,pDisplayName) ) - -#define ITypeLibRegistration_GetFlags(This,pFlags) \ - ( (This)->lpVtbl -> GetFlags(This,pFlags) ) - -#define ITypeLibRegistration_GetHelpDir(This,pHelpDir) \ - ( (This)->lpVtbl -> GetHelpDir(This,pHelpDir) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ITypeLibRegistration_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_oaidl_0000_0023 */ -/* [local] */ - -EXTERN_C const CLSID CLSID_TypeLibRegistrationReader; -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#if ( _MSC_VER >= 800 ) -#if _MSC_VER >= 1200 -#pragma warning(pop) -#else -#pragma warning(default:4201) /* Nameless struct/union */ -#endif -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0023_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0023_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -unsigned long __RPC_USER BSTR_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); -void __RPC_USER BSTR_UserFree( __RPC__in unsigned long *, __RPC__in BSTR * ); - -unsigned long __RPC_USER CLEANLOCALSTORAGE_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in CLEANLOCALSTORAGE * ); -unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in CLEANLOCALSTORAGE * ); -unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out CLEANLOCALSTORAGE * ); -void __RPC_USER CLEANLOCALSTORAGE_UserFree( __RPC__in unsigned long *, __RPC__in CLEANLOCALSTORAGE * ); - -unsigned long __RPC_USER VARIANT_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in VARIANT * ); -unsigned char * __RPC_USER VARIANT_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in VARIANT * ); -unsigned char * __RPC_USER VARIANT_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out VARIANT * ); -void __RPC_USER VARIANT_UserFree( __RPC__in unsigned long *, __RPC__in VARIANT * ); - -unsigned long __RPC_USER BSTR_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); -void __RPC_USER BSTR_UserFree64( __RPC__in unsigned long *, __RPC__in BSTR * ); - -unsigned long __RPC_USER CLEANLOCALSTORAGE_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in CLEANLOCALSTORAGE * ); -unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in CLEANLOCALSTORAGE * ); -unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out CLEANLOCALSTORAGE * ); -void __RPC_USER CLEANLOCALSTORAGE_UserFree64( __RPC__in unsigned long *, __RPC__in CLEANLOCALSTORAGE * ); - -unsigned long __RPC_USER VARIANT_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in VARIANT * ); -unsigned char * __RPC_USER VARIANT_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in VARIANT * ); -unsigned char * __RPC_USER VARIANT_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out VARIANT * ); -void __RPC_USER VARIANT_UserFree64( __RPC__in unsigned long *, __RPC__in VARIANT * ); - -/* [local] */ HRESULT STDMETHODCALLTYPE IDispatch_Invoke_Proxy( - IDispatch * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IDispatch_Invoke_Stub( - __RPC__in IDispatch * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ __RPC__in REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ DWORD dwFlags, - /* [in] */ __RPC__in DISPPARAMS *pDispParams, - /* [out] */ __RPC__out VARIANT *pVarResult, - /* [out] */ __RPC__out EXCEPINFO *pExcepInfo, - /* [out] */ __RPC__out UINT *pArgErr, - /* [in] */ UINT cVarRef, - /* [size_is][in] */ __RPC__in_ecount_full(cVarRef) UINT *rgVarRefIdx, - /* [size_is][out][in] */ __RPC__inout_ecount_full(cVarRef) VARIANTARG *rgVarRef); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumVARIANT_Next_Proxy( - IEnumVARIANT * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ VARIANT *rgVar, - /* [out] */ ULONG *pCeltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumVARIANT_Next_Stub( - __RPC__in IEnumVARIANT * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pCeltFetched) VARIANT *rgVar, - /* [out] */ __RPC__out ULONG *pCeltFetched); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeComp_Bind_Proxy( - ITypeComp * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szName, - /* [in] */ ULONG lHashVal, - /* [in] */ WORD wFlags, - /* [out] */ ITypeInfo **ppTInfo, - /* [out] */ DESCKIND *pDescKind, - /* [out] */ BINDPTR *pBindPtr); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeComp_Bind_Stub( - __RPC__in ITypeComp * This, - /* [in] */ __RPC__in LPOLESTR szName, - /* [in] */ ULONG lHashVal, - /* [in] */ WORD wFlags, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo, - /* [out] */ __RPC__out DESCKIND *pDescKind, - /* [out] */ __RPC__deref_out_opt LPFUNCDESC *ppFuncDesc, - /* [out] */ __RPC__deref_out_opt LPVARDESC *ppVarDesc, - /* [out] */ __RPC__deref_out_opt ITypeComp **ppTypeComp, - /* [out] */ __RPC__out CLEANLOCALSTORAGE *pDummy); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeComp_BindType_Proxy( - ITypeComp * This, - /* [annotation][in] */ - __RPC__in LPOLESTR szName, - /* [in] */ ULONG lHashVal, - /* [out] */ ITypeInfo **ppTInfo, - /* [out] */ ITypeComp **ppTComp); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeComp_BindType_Stub( - __RPC__in ITypeComp * This, - /* [in] */ __RPC__in LPOLESTR szName, - /* [in] */ ULONG lHashVal, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetTypeAttr_Proxy( - ITypeInfo * This, - /* [out] */ TYPEATTR **ppTypeAttr); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetTypeAttr_Stub( - __RPC__in ITypeInfo * This, - /* [out] */ __RPC__deref_out_opt LPTYPEATTR *ppTypeAttr, - /* [out] */ __RPC__out CLEANLOCALSTORAGE *pDummy); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetFuncDesc_Proxy( - ITypeInfo * This, - /* [in] */ UINT index, - /* [out] */ FUNCDESC **ppFuncDesc); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetFuncDesc_Stub( - __RPC__in ITypeInfo * This, - /* [in] */ UINT index, - /* [out] */ __RPC__deref_out_opt LPFUNCDESC *ppFuncDesc, - /* [out] */ __RPC__out CLEANLOCALSTORAGE *pDummy); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetVarDesc_Proxy( - ITypeInfo * This, - /* [in] */ UINT index, - /* [out] */ VARDESC **ppVarDesc); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetVarDesc_Stub( - __RPC__in ITypeInfo * This, - /* [in] */ UINT index, - /* [out] */ __RPC__deref_out_opt LPVARDESC *ppVarDesc, - /* [out] */ __RPC__out CLEANLOCALSTORAGE *pDummy); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetNames_Proxy( - ITypeInfo * This, - /* [in] */ MEMBERID memid, - /* [annotation][length_is][size_is][out] */ - __RPC__out_ecount_part(cMaxNames, *pcNames) BSTR *rgBstrNames, - /* [in] */ UINT cMaxNames, - /* [annotation][out] */ - __RPC__out UINT *pcNames); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetNames_Stub( - __RPC__in ITypeInfo * This, - /* [in] */ MEMBERID memid, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cMaxNames, *pcNames) BSTR *rgBstrNames, - /* [in] */ UINT cMaxNames, - /* [out] */ __RPC__out UINT *pcNames); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetIDsOfNames_Proxy( - ITypeInfo * This, - /* [annotation][size_is][in] */ - __RPC__in_ecount(cNames) LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [size_is][out] */ MEMBERID *pMemId); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetIDsOfNames_Stub( - __RPC__in ITypeInfo * This); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo_Invoke_Proxy( - ITypeInfo * This, - /* [in] */ PVOID pvInstance, - /* [in] */ MEMBERID memid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_Invoke_Stub( - __RPC__in ITypeInfo * This); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetDocumentation_Proxy( - ITypeInfo * This, - /* [in] */ MEMBERID memid, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrName, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDocString, - /* [out] */ DWORD *pdwHelpContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrHelpFile); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetDocumentation_Stub( - __RPC__in ITypeInfo * This, - /* [in] */ MEMBERID memid, - /* [in] */ DWORD refPtrFlags, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrName, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrDocString, - /* [out] */ __RPC__out DWORD *pdwHelpContext, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrHelpFile); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetDllEntry_Proxy( - ITypeInfo * This, - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDllName, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrName, - /* [out] */ WORD *pwOrdinal); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetDllEntry_Stub( - __RPC__in ITypeInfo * This, - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind, - /* [in] */ DWORD refPtrFlags, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrDllName, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrName, - /* [out] */ __RPC__out WORD *pwOrdinal); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo_AddressOfMember_Proxy( - ITypeInfo * This, - /* [in] */ MEMBERID memid, - /* [in] */ INVOKEKIND invKind, - /* [out] */ PVOID *ppv); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_AddressOfMember_Stub( - __RPC__in ITypeInfo * This); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo_CreateInstance_Proxy( - ITypeInfo * This, - /* [in] */ IUnknown *pUnkOuter, - /* [in] */ REFIID riid, - /* [iid_is][out] */ PVOID *ppvObj); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_CreateInstance_Stub( - __RPC__in ITypeInfo * This, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObj); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetContainingTypeLib_Proxy( - ITypeInfo * This, - /* [out] */ ITypeLib **ppTLib, - /* [out] */ UINT *pIndex); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_GetContainingTypeLib_Stub( - __RPC__in ITypeInfo * This, - /* [out] */ __RPC__deref_out_opt ITypeLib **ppTLib, - /* [out] */ __RPC__out UINT *pIndex); - -/* [local] */ void STDMETHODCALLTYPE ITypeInfo_ReleaseTypeAttr_Proxy( - ITypeInfo * This, - /* [in] */ TYPEATTR *pTypeAttr); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_ReleaseTypeAttr_Stub( - __RPC__in ITypeInfo * This); - -/* [local] */ void STDMETHODCALLTYPE ITypeInfo_ReleaseFuncDesc_Proxy( - ITypeInfo * This, - /* [in] */ FUNCDESC *pFuncDesc); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_ReleaseFuncDesc_Stub( - __RPC__in ITypeInfo * This); - -/* [local] */ void STDMETHODCALLTYPE ITypeInfo_ReleaseVarDesc_Proxy( - ITypeInfo * This, - /* [in] */ VARDESC *pVarDesc); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo_ReleaseVarDesc_Stub( - __RPC__in ITypeInfo * This); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeInfo2_GetDocumentation2_Proxy( - ITypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [in] */ LCID lcid, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpString, - /* [out] */ DWORD *pdwHelpStringContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpStringDll); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeInfo2_GetDocumentation2_Stub( - __RPC__in ITypeInfo2 * This, - /* [in] */ MEMBERID memid, - /* [in] */ LCID lcid, - /* [in] */ DWORD refPtrFlags, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrHelpString, - /* [out] */ __RPC__out DWORD *pdwHelpStringContext, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrHelpStringDll); - -/* [local] */ UINT STDMETHODCALLTYPE ITypeLib_GetTypeInfoCount_Proxy( - ITypeLib * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_GetTypeInfoCount_Stub( - __RPC__in ITypeLib * This, - /* [out] */ __RPC__out UINT *pcTInfo); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeLib_GetLibAttr_Proxy( - ITypeLib * This, - /* [out] */ TLIBATTR **ppTLibAttr); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_GetLibAttr_Stub( - __RPC__in ITypeLib * This, - /* [out] */ __RPC__deref_out_opt LPTLIBATTR *ppTLibAttr, - /* [out] */ __RPC__out CLEANLOCALSTORAGE *pDummy); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeLib_GetDocumentation_Proxy( - ITypeLib * This, - /* [in] */ INT index, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrName, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrDocString, - /* [out] */ DWORD *pdwHelpContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pBstrHelpFile); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_GetDocumentation_Stub( - __RPC__in ITypeLib * This, - /* [in] */ INT index, - /* [in] */ DWORD refPtrFlags, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrName, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrDocString, - /* [out] */ __RPC__out DWORD *pdwHelpContext, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrHelpFile); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeLib_IsName_Proxy( - ITypeLib * This, - /* [annotation][out][in] */ - __RPC__inout LPOLESTR szNameBuf, - /* [in] */ ULONG lHashVal, - /* [out] */ BOOL *pfName); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_IsName_Stub( - __RPC__in ITypeLib * This, - /* [in] */ __RPC__in LPOLESTR szNameBuf, - /* [in] */ ULONG lHashVal, - /* [out] */ __RPC__out BOOL *pfName, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrLibName); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeLib_FindName_Proxy( - 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); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_FindName_Stub( - __RPC__in ITypeLib * This, - /* [in] */ __RPC__in LPOLESTR szNameBuf, - /* [in] */ ULONG lHashVal, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(*pcFound, *pcFound) ITypeInfo **ppTInfo, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(*pcFound, *pcFound) MEMBERID *rgMemId, - /* [out][in] */ __RPC__inout USHORT *pcFound, - /* [out] */ __RPC__deref_out_opt BSTR *pBstrLibName); - -/* [local] */ void STDMETHODCALLTYPE ITypeLib_ReleaseTLibAttr_Proxy( - ITypeLib * This, - /* [in] */ TLIBATTR *pTLibAttr); - - -/* [nocode][call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib_ReleaseTLibAttr_Stub( - __RPC__in ITypeLib * This); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeLib2_GetLibStatistics_Proxy( - ITypeLib2 * This, - /* [out] */ ULONG *pcUniqueNames, - /* [out] */ ULONG *pcchUniqueNames); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib2_GetLibStatistics_Stub( - __RPC__in ITypeLib2 * This, - /* [out] */ __RPC__out ULONG *pcUniqueNames, - /* [out] */ __RPC__out ULONG *pcchUniqueNames); - -/* [local] */ HRESULT STDMETHODCALLTYPE ITypeLib2_GetDocumentation2_Proxy( - ITypeLib2 * This, - /* [in] */ INT index, - /* [in] */ LCID lcid, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpString, - /* [out] */ DWORD *pdwHelpStringContext, - /* [annotation][out] */ - _Outptr_opt_ BSTR *pbstrHelpStringDll); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeLib2_GetDocumentation2_Stub( - __RPC__in ITypeLib2 * This, - /* [in] */ INT index, - /* [in] */ LCID lcid, - /* [in] */ DWORD refPtrFlags, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrHelpString, - /* [out] */ __RPC__out DWORD *pdwHelpStringContext, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrHelpStringDll); - -/* [local] */ HRESULT STDMETHODCALLTYPE IPropertyBag_Read_Proxy( - IPropertyBag * This, - /* [in] */ LPCOLESTR pszPropName, - /* [out][in] */ VARIANT *pVar, - /* [unique][in] */ IErrorLog *pErrorLog); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IPropertyBag_Read_Stub( - __RPC__in IPropertyBag * This, - /* [in] */ __RPC__in LPCOLESTR pszPropName, - /* [out] */ __RPC__out VARIANT *pVar, - /* [unique][in] */ __RPC__in_opt IErrorLog *pErrorLog, - /* [in] */ DWORD varType, - /* [in] */ __RPC__in_opt IUnknown *pUnkObj); - - - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/custom/winsdk/include/um/ObjIdl.h b/src/custom/winsdk/include/um/ObjIdl.h deleted file mode 100644 index cc264fe..0000000 --- a/src/custom/winsdk/include/um/ObjIdl.h +++ /dev/null @@ -1,15171 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __objidl_h__ -#define __objidl_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IMarshal_FWD_DEFINED__ -#define __IMarshal_FWD_DEFINED__ -typedef interface IMarshal IMarshal; - -#endif /* __IMarshal_FWD_DEFINED__ */ - - -#ifndef __INoMarshal_FWD_DEFINED__ -#define __INoMarshal_FWD_DEFINED__ -typedef interface INoMarshal INoMarshal; - -#endif /* __INoMarshal_FWD_DEFINED__ */ - - -#ifndef __IAgileObject_FWD_DEFINED__ -#define __IAgileObject_FWD_DEFINED__ -typedef interface IAgileObject IAgileObject; - -#endif /* __IAgileObject_FWD_DEFINED__ */ - - -#ifndef __IActivationFilter_FWD_DEFINED__ -#define __IActivationFilter_FWD_DEFINED__ -typedef interface IActivationFilter IActivationFilter; - -#endif /* __IActivationFilter_FWD_DEFINED__ */ - - -#ifndef __IMarshal2_FWD_DEFINED__ -#define __IMarshal2_FWD_DEFINED__ -typedef interface IMarshal2 IMarshal2; - -#endif /* __IMarshal2_FWD_DEFINED__ */ - - -#ifndef __IMalloc_FWD_DEFINED__ -#define __IMalloc_FWD_DEFINED__ -typedef interface IMalloc IMalloc; - -#endif /* __IMalloc_FWD_DEFINED__ */ - - -#ifndef __IStdMarshalInfo_FWD_DEFINED__ -#define __IStdMarshalInfo_FWD_DEFINED__ -typedef interface IStdMarshalInfo IStdMarshalInfo; - -#endif /* __IStdMarshalInfo_FWD_DEFINED__ */ - - -#ifndef __IExternalConnection_FWD_DEFINED__ -#define __IExternalConnection_FWD_DEFINED__ -typedef interface IExternalConnection IExternalConnection; - -#endif /* __IExternalConnection_FWD_DEFINED__ */ - - -#ifndef __IMultiQI_FWD_DEFINED__ -#define __IMultiQI_FWD_DEFINED__ -typedef interface IMultiQI IMultiQI; - -#endif /* __IMultiQI_FWD_DEFINED__ */ - - -#ifndef __AsyncIMultiQI_FWD_DEFINED__ -#define __AsyncIMultiQI_FWD_DEFINED__ -typedef interface AsyncIMultiQI AsyncIMultiQI; - -#endif /* __AsyncIMultiQI_FWD_DEFINED__ */ - - -#ifndef __IInternalUnknown_FWD_DEFINED__ -#define __IInternalUnknown_FWD_DEFINED__ -typedef interface IInternalUnknown IInternalUnknown; - -#endif /* __IInternalUnknown_FWD_DEFINED__ */ - - -#ifndef __IEnumUnknown_FWD_DEFINED__ -#define __IEnumUnknown_FWD_DEFINED__ -typedef interface IEnumUnknown IEnumUnknown; - -#endif /* __IEnumUnknown_FWD_DEFINED__ */ - - -#ifndef __IEnumString_FWD_DEFINED__ -#define __IEnumString_FWD_DEFINED__ -typedef interface IEnumString IEnumString; - -#endif /* __IEnumString_FWD_DEFINED__ */ - - -#ifndef __ISequentialStream_FWD_DEFINED__ -#define __ISequentialStream_FWD_DEFINED__ -typedef interface ISequentialStream ISequentialStream; - -#endif /* __ISequentialStream_FWD_DEFINED__ */ - - -#ifndef __IStream_FWD_DEFINED__ -#define __IStream_FWD_DEFINED__ -typedef interface IStream IStream; - -#endif /* __IStream_FWD_DEFINED__ */ - - -#ifndef __IRpcChannelBuffer_FWD_DEFINED__ -#define __IRpcChannelBuffer_FWD_DEFINED__ -typedef interface IRpcChannelBuffer IRpcChannelBuffer; - -#endif /* __IRpcChannelBuffer_FWD_DEFINED__ */ - - -#ifndef __IRpcChannelBuffer2_FWD_DEFINED__ -#define __IRpcChannelBuffer2_FWD_DEFINED__ -typedef interface IRpcChannelBuffer2 IRpcChannelBuffer2; - -#endif /* __IRpcChannelBuffer2_FWD_DEFINED__ */ - - -#ifndef __IAsyncRpcChannelBuffer_FWD_DEFINED__ -#define __IAsyncRpcChannelBuffer_FWD_DEFINED__ -typedef interface IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer; - -#endif /* __IAsyncRpcChannelBuffer_FWD_DEFINED__ */ - - -#ifndef __IRpcChannelBuffer3_FWD_DEFINED__ -#define __IRpcChannelBuffer3_FWD_DEFINED__ -typedef interface IRpcChannelBuffer3 IRpcChannelBuffer3; - -#endif /* __IRpcChannelBuffer3_FWD_DEFINED__ */ - - -#ifndef __IRpcSyntaxNegotiate_FWD_DEFINED__ -#define __IRpcSyntaxNegotiate_FWD_DEFINED__ -typedef interface IRpcSyntaxNegotiate IRpcSyntaxNegotiate; - -#endif /* __IRpcSyntaxNegotiate_FWD_DEFINED__ */ - - -#ifndef __IRpcProxyBuffer_FWD_DEFINED__ -#define __IRpcProxyBuffer_FWD_DEFINED__ -typedef interface IRpcProxyBuffer IRpcProxyBuffer; - -#endif /* __IRpcProxyBuffer_FWD_DEFINED__ */ - - -#ifndef __IRpcStubBuffer_FWD_DEFINED__ -#define __IRpcStubBuffer_FWD_DEFINED__ -typedef interface IRpcStubBuffer IRpcStubBuffer; - -#endif /* __IRpcStubBuffer_FWD_DEFINED__ */ - - -#ifndef __IPSFactoryBuffer_FWD_DEFINED__ -#define __IPSFactoryBuffer_FWD_DEFINED__ -typedef interface IPSFactoryBuffer IPSFactoryBuffer; - -#endif /* __IPSFactoryBuffer_FWD_DEFINED__ */ - - -#ifndef __IChannelHook_FWD_DEFINED__ -#define __IChannelHook_FWD_DEFINED__ -typedef interface IChannelHook IChannelHook; - -#endif /* __IChannelHook_FWD_DEFINED__ */ - - -#ifndef __IClientSecurity_FWD_DEFINED__ -#define __IClientSecurity_FWD_DEFINED__ -typedef interface IClientSecurity IClientSecurity; - -#endif /* __IClientSecurity_FWD_DEFINED__ */ - - -#ifndef __IServerSecurity_FWD_DEFINED__ -#define __IServerSecurity_FWD_DEFINED__ -typedef interface IServerSecurity IServerSecurity; - -#endif /* __IServerSecurity_FWD_DEFINED__ */ - - -#ifndef __IRpcOptions_FWD_DEFINED__ -#define __IRpcOptions_FWD_DEFINED__ -typedef interface IRpcOptions IRpcOptions; - -#endif /* __IRpcOptions_FWD_DEFINED__ */ - - -#ifndef __IGlobalOptions_FWD_DEFINED__ -#define __IGlobalOptions_FWD_DEFINED__ -typedef interface IGlobalOptions IGlobalOptions; - -#endif /* __IGlobalOptions_FWD_DEFINED__ */ - - -#ifndef __ISurrogate_FWD_DEFINED__ -#define __ISurrogate_FWD_DEFINED__ -typedef interface ISurrogate ISurrogate; - -#endif /* __ISurrogate_FWD_DEFINED__ */ - - -#ifndef __IGlobalInterfaceTable_FWD_DEFINED__ -#define __IGlobalInterfaceTable_FWD_DEFINED__ -typedef interface IGlobalInterfaceTable IGlobalInterfaceTable; - -#endif /* __IGlobalInterfaceTable_FWD_DEFINED__ */ - - -#ifndef __ISynchronize_FWD_DEFINED__ -#define __ISynchronize_FWD_DEFINED__ -typedef interface ISynchronize ISynchronize; - -#endif /* __ISynchronize_FWD_DEFINED__ */ - - -#ifndef __ISynchronizeHandle_FWD_DEFINED__ -#define __ISynchronizeHandle_FWD_DEFINED__ -typedef interface ISynchronizeHandle ISynchronizeHandle; - -#endif /* __ISynchronizeHandle_FWD_DEFINED__ */ - - -#ifndef __ISynchronizeEvent_FWD_DEFINED__ -#define __ISynchronizeEvent_FWD_DEFINED__ -typedef interface ISynchronizeEvent ISynchronizeEvent; - -#endif /* __ISynchronizeEvent_FWD_DEFINED__ */ - - -#ifndef __ISynchronizeContainer_FWD_DEFINED__ -#define __ISynchronizeContainer_FWD_DEFINED__ -typedef interface ISynchronizeContainer ISynchronizeContainer; - -#endif /* __ISynchronizeContainer_FWD_DEFINED__ */ - - -#ifndef __ISynchronizeMutex_FWD_DEFINED__ -#define __ISynchronizeMutex_FWD_DEFINED__ -typedef interface ISynchronizeMutex ISynchronizeMutex; - -#endif /* __ISynchronizeMutex_FWD_DEFINED__ */ - - -#ifndef __ICancelMethodCalls_FWD_DEFINED__ -#define __ICancelMethodCalls_FWD_DEFINED__ -typedef interface ICancelMethodCalls ICancelMethodCalls; - -#endif /* __ICancelMethodCalls_FWD_DEFINED__ */ - - -#ifndef __IAsyncManager_FWD_DEFINED__ -#define __IAsyncManager_FWD_DEFINED__ -typedef interface IAsyncManager IAsyncManager; - -#endif /* __IAsyncManager_FWD_DEFINED__ */ - - -#ifndef __ICallFactory_FWD_DEFINED__ -#define __ICallFactory_FWD_DEFINED__ -typedef interface ICallFactory ICallFactory; - -#endif /* __ICallFactory_FWD_DEFINED__ */ - - -#ifndef __IRpcHelper_FWD_DEFINED__ -#define __IRpcHelper_FWD_DEFINED__ -typedef interface IRpcHelper IRpcHelper; - -#endif /* __IRpcHelper_FWD_DEFINED__ */ - - -#ifndef __IReleaseMarshalBuffers_FWD_DEFINED__ -#define __IReleaseMarshalBuffers_FWD_DEFINED__ -typedef interface IReleaseMarshalBuffers IReleaseMarshalBuffers; - -#endif /* __IReleaseMarshalBuffers_FWD_DEFINED__ */ - - -#ifndef __IWaitMultiple_FWD_DEFINED__ -#define __IWaitMultiple_FWD_DEFINED__ -typedef interface IWaitMultiple IWaitMultiple; - -#endif /* __IWaitMultiple_FWD_DEFINED__ */ - - -#ifndef __IAddrTrackingControl_FWD_DEFINED__ -#define __IAddrTrackingControl_FWD_DEFINED__ -typedef interface IAddrTrackingControl IAddrTrackingControl; - -#endif /* __IAddrTrackingControl_FWD_DEFINED__ */ - - -#ifndef __IAddrExclusionControl_FWD_DEFINED__ -#define __IAddrExclusionControl_FWD_DEFINED__ -typedef interface IAddrExclusionControl IAddrExclusionControl; - -#endif /* __IAddrExclusionControl_FWD_DEFINED__ */ - - -#ifndef __IPipeByte_FWD_DEFINED__ -#define __IPipeByte_FWD_DEFINED__ -typedef interface IPipeByte IPipeByte; - -#endif /* __IPipeByte_FWD_DEFINED__ */ - - -#ifndef __AsyncIPipeByte_FWD_DEFINED__ -#define __AsyncIPipeByte_FWD_DEFINED__ -typedef interface AsyncIPipeByte AsyncIPipeByte; - -#endif /* __AsyncIPipeByte_FWD_DEFINED__ */ - - -#ifndef __IPipeLong_FWD_DEFINED__ -#define __IPipeLong_FWD_DEFINED__ -typedef interface IPipeLong IPipeLong; - -#endif /* __IPipeLong_FWD_DEFINED__ */ - - -#ifndef __AsyncIPipeLong_FWD_DEFINED__ -#define __AsyncIPipeLong_FWD_DEFINED__ -typedef interface AsyncIPipeLong AsyncIPipeLong; - -#endif /* __AsyncIPipeLong_FWD_DEFINED__ */ - - -#ifndef __IPipeDouble_FWD_DEFINED__ -#define __IPipeDouble_FWD_DEFINED__ -typedef interface IPipeDouble IPipeDouble; - -#endif /* __IPipeDouble_FWD_DEFINED__ */ - - -#ifndef __AsyncIPipeDouble_FWD_DEFINED__ -#define __AsyncIPipeDouble_FWD_DEFINED__ -typedef interface AsyncIPipeDouble AsyncIPipeDouble; - -#endif /* __AsyncIPipeDouble_FWD_DEFINED__ */ - - -#ifndef __IEnumContextProps_FWD_DEFINED__ -#define __IEnumContextProps_FWD_DEFINED__ -typedef interface IEnumContextProps IEnumContextProps; - -#endif /* __IEnumContextProps_FWD_DEFINED__ */ - - -#ifndef __IContext_FWD_DEFINED__ -#define __IContext_FWD_DEFINED__ -typedef interface IContext IContext; - -#endif /* __IContext_FWD_DEFINED__ */ - - -#ifndef __IObjContext_FWD_DEFINED__ -#define __IObjContext_FWD_DEFINED__ -typedef interface IObjContext IObjContext; - -#endif /* __IObjContext_FWD_DEFINED__ */ - - -#ifndef __IComThreadingInfo_FWD_DEFINED__ -#define __IComThreadingInfo_FWD_DEFINED__ -typedef interface IComThreadingInfo IComThreadingInfo; - -#endif /* __IComThreadingInfo_FWD_DEFINED__ */ - - -#ifndef __IProcessInitControl_FWD_DEFINED__ -#define __IProcessInitControl_FWD_DEFINED__ -typedef interface IProcessInitControl IProcessInitControl; - -#endif /* __IProcessInitControl_FWD_DEFINED__ */ - - -#ifndef __IFastRundown_FWD_DEFINED__ -#define __IFastRundown_FWD_DEFINED__ -typedef interface IFastRundown IFastRundown; - -#endif /* __IFastRundown_FWD_DEFINED__ */ - - -#ifndef __IMarshalingStream_FWD_DEFINED__ -#define __IMarshalingStream_FWD_DEFINED__ -typedef interface IMarshalingStream IMarshalingStream; - -#endif /* __IMarshalingStream_FWD_DEFINED__ */ - - -#ifndef __IAgileReference_FWD_DEFINED__ -#define __IAgileReference_FWD_DEFINED__ -typedef interface IAgileReference IAgileReference; - -#endif /* __IAgileReference_FWD_DEFINED__ */ - - -#ifndef __IMallocSpy_FWD_DEFINED__ -#define __IMallocSpy_FWD_DEFINED__ -typedef interface IMallocSpy IMallocSpy; - -#endif /* __IMallocSpy_FWD_DEFINED__ */ - - -#ifndef __IBindCtx_FWD_DEFINED__ -#define __IBindCtx_FWD_DEFINED__ -typedef interface IBindCtx IBindCtx; - -#endif /* __IBindCtx_FWD_DEFINED__ */ - - -#ifndef __IEnumMoniker_FWD_DEFINED__ -#define __IEnumMoniker_FWD_DEFINED__ -typedef interface IEnumMoniker IEnumMoniker; - -#endif /* __IEnumMoniker_FWD_DEFINED__ */ - - -#ifndef __IRunnableObject_FWD_DEFINED__ -#define __IRunnableObject_FWD_DEFINED__ -typedef interface IRunnableObject IRunnableObject; - -#endif /* __IRunnableObject_FWD_DEFINED__ */ - - -#ifndef __IRunningObjectTable_FWD_DEFINED__ -#define __IRunningObjectTable_FWD_DEFINED__ -typedef interface IRunningObjectTable IRunningObjectTable; - -#endif /* __IRunningObjectTable_FWD_DEFINED__ */ - - -#ifndef __IPersist_FWD_DEFINED__ -#define __IPersist_FWD_DEFINED__ -typedef interface IPersist IPersist; - -#endif /* __IPersist_FWD_DEFINED__ */ - - -#ifndef __IPersistStream_FWD_DEFINED__ -#define __IPersistStream_FWD_DEFINED__ -typedef interface IPersistStream IPersistStream; - -#endif /* __IPersistStream_FWD_DEFINED__ */ - - -#ifndef __IMoniker_FWD_DEFINED__ -#define __IMoniker_FWD_DEFINED__ -typedef interface IMoniker IMoniker; - -#endif /* __IMoniker_FWD_DEFINED__ */ - - -#ifndef __IROTData_FWD_DEFINED__ -#define __IROTData_FWD_DEFINED__ -typedef interface IROTData IROTData; - -#endif /* __IROTData_FWD_DEFINED__ */ - - -#ifndef __IEnumSTATSTG_FWD_DEFINED__ -#define __IEnumSTATSTG_FWD_DEFINED__ -typedef interface IEnumSTATSTG IEnumSTATSTG; - -#endif /* __IEnumSTATSTG_FWD_DEFINED__ */ - - -#ifndef __IStorage_FWD_DEFINED__ -#define __IStorage_FWD_DEFINED__ -typedef interface IStorage IStorage; - -#endif /* __IStorage_FWD_DEFINED__ */ - - -#ifndef __IPersistFile_FWD_DEFINED__ -#define __IPersistFile_FWD_DEFINED__ -typedef interface IPersistFile IPersistFile; - -#endif /* __IPersistFile_FWD_DEFINED__ */ - - -#ifndef __IPersistStorage_FWD_DEFINED__ -#define __IPersistStorage_FWD_DEFINED__ -typedef interface IPersistStorage IPersistStorage; - -#endif /* __IPersistStorage_FWD_DEFINED__ */ - - -#ifndef __ILockBytes_FWD_DEFINED__ -#define __ILockBytes_FWD_DEFINED__ -typedef interface ILockBytes ILockBytes; - -#endif /* __ILockBytes_FWD_DEFINED__ */ - - -#ifndef __IEnumFORMATETC_FWD_DEFINED__ -#define __IEnumFORMATETC_FWD_DEFINED__ -typedef interface IEnumFORMATETC IEnumFORMATETC; - -#endif /* __IEnumFORMATETC_FWD_DEFINED__ */ - - -#ifndef __IEnumSTATDATA_FWD_DEFINED__ -#define __IEnumSTATDATA_FWD_DEFINED__ -typedef interface IEnumSTATDATA IEnumSTATDATA; - -#endif /* __IEnumSTATDATA_FWD_DEFINED__ */ - - -#ifndef __IRootStorage_FWD_DEFINED__ -#define __IRootStorage_FWD_DEFINED__ -typedef interface IRootStorage IRootStorage; - -#endif /* __IRootStorage_FWD_DEFINED__ */ - - -#ifndef __IAdviseSink_FWD_DEFINED__ -#define __IAdviseSink_FWD_DEFINED__ -typedef interface IAdviseSink IAdviseSink; - -#endif /* __IAdviseSink_FWD_DEFINED__ */ - - -#ifndef __AsyncIAdviseSink_FWD_DEFINED__ -#define __AsyncIAdviseSink_FWD_DEFINED__ -typedef interface AsyncIAdviseSink AsyncIAdviseSink; - -#endif /* __AsyncIAdviseSink_FWD_DEFINED__ */ - - -#ifndef __IAdviseSink2_FWD_DEFINED__ -#define __IAdviseSink2_FWD_DEFINED__ -typedef interface IAdviseSink2 IAdviseSink2; - -#endif /* __IAdviseSink2_FWD_DEFINED__ */ - - -#ifndef __AsyncIAdviseSink2_FWD_DEFINED__ -#define __AsyncIAdviseSink2_FWD_DEFINED__ -typedef interface AsyncIAdviseSink2 AsyncIAdviseSink2; - -#endif /* __AsyncIAdviseSink2_FWD_DEFINED__ */ - - -#ifndef __IDataObject_FWD_DEFINED__ -#define __IDataObject_FWD_DEFINED__ -typedef interface IDataObject IDataObject; - -#endif /* __IDataObject_FWD_DEFINED__ */ - - -#ifndef __IDataAdviseHolder_FWD_DEFINED__ -#define __IDataAdviseHolder_FWD_DEFINED__ -typedef interface IDataAdviseHolder IDataAdviseHolder; - -#endif /* __IDataAdviseHolder_FWD_DEFINED__ */ - - -#ifndef __IMessageFilter_FWD_DEFINED__ -#define __IMessageFilter_FWD_DEFINED__ -typedef interface IMessageFilter IMessageFilter; - -#endif /* __IMessageFilter_FWD_DEFINED__ */ - - -#ifndef __IClassActivator_FWD_DEFINED__ -#define __IClassActivator_FWD_DEFINED__ -typedef interface IClassActivator IClassActivator; - -#endif /* __IClassActivator_FWD_DEFINED__ */ - - -#ifndef __IFillLockBytes_FWD_DEFINED__ -#define __IFillLockBytes_FWD_DEFINED__ -typedef interface IFillLockBytes IFillLockBytes; - -#endif /* __IFillLockBytes_FWD_DEFINED__ */ - - -#ifndef __IProgressNotify_FWD_DEFINED__ -#define __IProgressNotify_FWD_DEFINED__ -typedef interface IProgressNotify IProgressNotify; - -#endif /* __IProgressNotify_FWD_DEFINED__ */ - - -#ifndef __ILayoutStorage_FWD_DEFINED__ -#define __ILayoutStorage_FWD_DEFINED__ -typedef interface ILayoutStorage ILayoutStorage; - -#endif /* __ILayoutStorage_FWD_DEFINED__ */ - - -#ifndef __IBlockingLock_FWD_DEFINED__ -#define __IBlockingLock_FWD_DEFINED__ -typedef interface IBlockingLock IBlockingLock; - -#endif /* __IBlockingLock_FWD_DEFINED__ */ - - -#ifndef __ITimeAndNoticeControl_FWD_DEFINED__ -#define __ITimeAndNoticeControl_FWD_DEFINED__ -typedef interface ITimeAndNoticeControl ITimeAndNoticeControl; - -#endif /* __ITimeAndNoticeControl_FWD_DEFINED__ */ - - -#ifndef __IOplockStorage_FWD_DEFINED__ -#define __IOplockStorage_FWD_DEFINED__ -typedef interface IOplockStorage IOplockStorage; - -#endif /* __IOplockStorage_FWD_DEFINED__ */ - - -#ifndef __IDirectWriterLock_FWD_DEFINED__ -#define __IDirectWriterLock_FWD_DEFINED__ -typedef interface IDirectWriterLock IDirectWriterLock; - -#endif /* __IDirectWriterLock_FWD_DEFINED__ */ - - -#ifndef __IUrlMon_FWD_DEFINED__ -#define __IUrlMon_FWD_DEFINED__ -typedef interface IUrlMon IUrlMon; - -#endif /* __IUrlMon_FWD_DEFINED__ */ - - -#ifndef __IForegroundTransfer_FWD_DEFINED__ -#define __IForegroundTransfer_FWD_DEFINED__ -typedef interface IForegroundTransfer IForegroundTransfer; - -#endif /* __IForegroundTransfer_FWD_DEFINED__ */ - - -#ifndef __IThumbnailExtractor_FWD_DEFINED__ -#define __IThumbnailExtractor_FWD_DEFINED__ -typedef interface IThumbnailExtractor IThumbnailExtractor; - -#endif /* __IThumbnailExtractor_FWD_DEFINED__ */ - - -#ifndef __IDummyHICONIncluder_FWD_DEFINED__ -#define __IDummyHICONIncluder_FWD_DEFINED__ -typedef interface IDummyHICONIncluder IDummyHICONIncluder; - -#endif /* __IDummyHICONIncluder_FWD_DEFINED__ */ - - -#ifndef __IProcessLock_FWD_DEFINED__ -#define __IProcessLock_FWD_DEFINED__ -typedef interface IProcessLock IProcessLock; - -#endif /* __IProcessLock_FWD_DEFINED__ */ - - -#ifndef __ISurrogateService_FWD_DEFINED__ -#define __ISurrogateService_FWD_DEFINED__ -typedef interface ISurrogateService ISurrogateService; - -#endif /* __ISurrogateService_FWD_DEFINED__ */ - - -#ifndef __IInitializeSpy_FWD_DEFINED__ -#define __IInitializeSpy_FWD_DEFINED__ -typedef interface IInitializeSpy IInitializeSpy; - -#endif /* __IInitializeSpy_FWD_DEFINED__ */ - - -#ifndef __IApartmentShutdown_FWD_DEFINED__ -#define __IApartmentShutdown_FWD_DEFINED__ -typedef interface IApartmentShutdown IApartmentShutdown; - -#endif /* __IApartmentShutdown_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "unknwn.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_objidl_0000_0000 */ -/* [local] */ - -#include -//+------------------------------------------------------------------------- -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -//-------------------------------------------------------------------------- -#if(NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0600 -#endif -#if(NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0502 -#endif -#if(NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0501 -#endif -#if(NTDDI_VERSION >= NTDDI_WIN2K && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0500 -#endif - - - -#if ( _MSC_VER >= 800 ) -#if _MSC_VER >= 1200 -#pragma warning(push) -#pragma warning(disable:4820) /* padding added after data member */ -#endif -#pragma warning(disable:4201) -#endif -#if ( _MSC_VER >= 1020 ) -#pragma once -#endif -#include -//+------------------------------------------------------------------------- -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -//-------------------------------------------------------------------------- -#if(NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0600 -#endif -#if(NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0502 -#endif -#if(NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0501 -#endif -#if(NTDDI_VERSION >= NTDDI_WIN2K && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0500 -#endif - - - -#if ( _MSC_VER >= 800 ) -#if _MSC_VER >= 1200 -#pragma warning(push) -#ifndef _MSC_EXTENSIONS -#pragma warning(disable:4309) /* truncation of constant value */ -#endif -#pragma warning(disable:4820) /* padding added after data member */ -#endif -#pragma warning(disable:4201) -#endif -#if ( _MSC_VER >= 1020 ) -#pragma once -#endif -#include -#ifndef _OBJIDLBASE_ -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -typedef struct _COSERVERINFO - { - DWORD dwReserved1; - LPWSTR pwszName; - COAUTHINFO *pAuthInfo; - DWORD dwReserved2; - } COSERVERINFO; - - - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0000_v0_0_s_ifspec; - -#ifndef __IMarshal_INTERFACE_DEFINED__ -#define __IMarshal_INTERFACE_DEFINED__ - -/* interface IMarshal */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IMarshal *LPMARSHAL; - - -EXTERN_C const IID IID_IMarshal; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000003-0000-0000-C000-000000000046") - IMarshal : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetUnmarshalClass( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ CLSID *pCid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMarshalSizeMax( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ DWORD *pSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE MarshalInterface( - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface( - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppv) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalData( - /* [annotation][unique][in] */ - _In_ IStream *pStm) = 0; - - virtual HRESULT STDMETHODCALLTYPE DisconnectObject( - /* [annotation][in] */ - _In_ DWORD dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMarshalVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMarshal * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMarshal * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMarshal * This); - - HRESULT ( STDMETHODCALLTYPE *GetUnmarshalClass )( - IMarshal * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ CLSID *pCid); - - HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )( - IMarshal * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ DWORD *pSize); - - HRESULT ( STDMETHODCALLTYPE *MarshalInterface )( - IMarshal * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags); - - HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )( - IMarshal * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppv); - - HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )( - IMarshal * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm); - - HRESULT ( STDMETHODCALLTYPE *DisconnectObject )( - IMarshal * This, - /* [annotation][in] */ - _In_ DWORD dwReserved); - - END_INTERFACE - } IMarshalVtbl; - - interface IMarshal - { - CONST_VTBL struct IMarshalVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMarshal_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMarshal_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMarshal_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMarshal_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) \ - ( (This)->lpVtbl -> GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) ) - -#define IMarshal_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) \ - ( (This)->lpVtbl -> GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) ) - -#define IMarshal_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) \ - ( (This)->lpVtbl -> MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) ) - -#define IMarshal_UnmarshalInterface(This,pStm,riid,ppv) \ - ( (This)->lpVtbl -> UnmarshalInterface(This,pStm,riid,ppv) ) - -#define IMarshal_ReleaseMarshalData(This,pStm) \ - ( (This)->lpVtbl -> ReleaseMarshalData(This,pStm) ) - -#define IMarshal_DisconnectObject(This,dwReserved) \ - ( (This)->lpVtbl -> DisconnectObject(This,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMarshal_INTERFACE_DEFINED__ */ - - -#ifndef __INoMarshal_INTERFACE_DEFINED__ -#define __INoMarshal_INTERFACE_DEFINED__ - -/* interface INoMarshal */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_INoMarshal; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ecc8691b-c1db-4dc0-855e-65f6c551af49") - INoMarshal : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct INoMarshalVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - INoMarshal * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - INoMarshal * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - INoMarshal * This); - - END_INTERFACE - } INoMarshalVtbl; - - interface INoMarshal - { - CONST_VTBL struct INoMarshalVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define INoMarshal_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define INoMarshal_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define INoMarshal_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __INoMarshal_INTERFACE_DEFINED__ */ - - -#ifndef __IAgileObject_INTERFACE_DEFINED__ -#define __IAgileObject_INTERFACE_DEFINED__ - -/* interface IAgileObject */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IAgileObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90") - IAgileObject : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct IAgileObjectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAgileObject * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAgileObject * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAgileObject * This); - - END_INTERFACE - } IAgileObjectVtbl; - - interface IAgileObject - { - CONST_VTBL struct IAgileObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAgileObject_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAgileObject_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAgileObject_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAgileObject_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0003 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0003_v0_0_s_ifspec; - -#ifndef __IActivationFilter_INTERFACE_DEFINED__ -#define __IActivationFilter_INTERFACE_DEFINED__ - -/* interface IActivationFilter */ -/* [uuid][object][local] */ - -typedef -enum tagACTIVATIONTYPE - { - ACTIVATIONTYPE_UNCATEGORIZED = 0, - ACTIVATIONTYPE_FROM_MONIKER = 0x1, - ACTIVATIONTYPE_FROM_DATA = 0x2, - ACTIVATIONTYPE_FROM_STORAGE = 0x4, - ACTIVATIONTYPE_FROM_STREAM = 0x8, - ACTIVATIONTYPE_FROM_FILE = 0x10 - } ACTIVATIONTYPE; - - -EXTERN_C const IID IID_IActivationFilter; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000017-0000-0000-C000-000000000046") - IActivationFilter : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE HandleActivation( - /* [in] */ DWORD dwActivationType, - /* [in] */ REFCLSID rclsid, - /* [out] */ CLSID *pReplacementClsId) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IActivationFilterVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IActivationFilter * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IActivationFilter * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IActivationFilter * This); - - HRESULT ( STDMETHODCALLTYPE *HandleActivation )( - IActivationFilter * This, - /* [in] */ DWORD dwActivationType, - /* [in] */ REFCLSID rclsid, - /* [out] */ CLSID *pReplacementClsId); - - END_INTERFACE - } IActivationFilterVtbl; - - interface IActivationFilter - { - CONST_VTBL struct IActivationFilterVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IActivationFilter_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IActivationFilter_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IActivationFilter_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IActivationFilter_HandleActivation(This,dwActivationType,rclsid,pReplacementClsId) \ - ( (This)->lpVtbl -> HandleActivation(This,dwActivationType,rclsid,pReplacementClsId) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IActivationFilter_INTERFACE_DEFINED__ */ - - -#ifndef __IMarshal2_INTERFACE_DEFINED__ -#define __IMarshal2_INTERFACE_DEFINED__ - -/* interface IMarshal2 */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IMarshal2 *LPMARSHAL2; - - -EXTERN_C const IID IID_IMarshal2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001cf-0000-0000-C000-000000000046") - IMarshal2 : public IMarshal - { - public: - }; - - -#else /* C style interface */ - - typedef struct IMarshal2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMarshal2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMarshal2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMarshal2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetUnmarshalClass )( - IMarshal2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ CLSID *pCid); - - HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )( - IMarshal2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ DWORD *pSize); - - HRESULT ( STDMETHODCALLTYPE *MarshalInterface )( - IMarshal2 * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags); - - HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )( - IMarshal2 * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppv); - - HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )( - IMarshal2 * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm); - - HRESULT ( STDMETHODCALLTYPE *DisconnectObject )( - IMarshal2 * This, - /* [annotation][in] */ - _In_ DWORD dwReserved); - - END_INTERFACE - } IMarshal2Vtbl; - - interface IMarshal2 - { - CONST_VTBL struct IMarshal2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMarshal2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMarshal2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMarshal2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMarshal2_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) \ - ( (This)->lpVtbl -> GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) ) - -#define IMarshal2_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) \ - ( (This)->lpVtbl -> GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) ) - -#define IMarshal2_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) \ - ( (This)->lpVtbl -> MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) ) - -#define IMarshal2_UnmarshalInterface(This,pStm,riid,ppv) \ - ( (This)->lpVtbl -> UnmarshalInterface(This,pStm,riid,ppv) ) - -#define IMarshal2_ReleaseMarshalData(This,pStm) \ - ( (This)->lpVtbl -> ReleaseMarshalData(This,pStm) ) - -#define IMarshal2_DisconnectObject(This,dwReserved) \ - ( (This)->lpVtbl -> DisconnectObject(This,dwReserved) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMarshal2_INTERFACE_DEFINED__ */ - - -#ifndef __IMalloc_INTERFACE_DEFINED__ -#define __IMalloc_INTERFACE_DEFINED__ - -/* interface IMalloc */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IMalloc *LPMALLOC; - - -EXTERN_C const IID IID_IMalloc; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000002-0000-0000-C000-000000000046") - IMalloc : public IUnknown - { - public: - virtual void *STDMETHODCALLTYPE Alloc( - /* [annotation][in] */ - _In_ SIZE_T cb) = 0; - - virtual void *STDMETHODCALLTYPE Realloc( - /* [annotation][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ SIZE_T cb) = 0; - - virtual void STDMETHODCALLTYPE Free( - /* [annotation][in] */ - _In_opt_ void *pv) = 0; - - virtual SIZE_T STDMETHODCALLTYPE GetSize( - /* [annotation][in] */ - _In_opt_ _Post_writable_byte_size_(return) void *pv) = 0; - - virtual int STDMETHODCALLTYPE DidAlloc( - /* [annotation][in] */ - _In_opt_ void *pv) = 0; - - virtual void STDMETHODCALLTYPE HeapMinimize( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMallocVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMalloc * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMalloc * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMalloc * This); - - void *( STDMETHODCALLTYPE *Alloc )( - IMalloc * This, - /* [annotation][in] */ - _In_ SIZE_T cb); - - void *( STDMETHODCALLTYPE *Realloc )( - IMalloc * This, - /* [annotation][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ SIZE_T cb); - - void ( STDMETHODCALLTYPE *Free )( - IMalloc * This, - /* [annotation][in] */ - _In_opt_ void *pv); - - SIZE_T ( STDMETHODCALLTYPE *GetSize )( - IMalloc * This, - /* [annotation][in] */ - _In_opt_ _Post_writable_byte_size_(return) void *pv); - - int ( STDMETHODCALLTYPE *DidAlloc )( - IMalloc * This, - /* [annotation][in] */ - _In_opt_ void *pv); - - void ( STDMETHODCALLTYPE *HeapMinimize )( - IMalloc * This); - - END_INTERFACE - } IMallocVtbl; - - interface IMalloc - { - CONST_VTBL struct IMallocVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMalloc_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMalloc_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMalloc_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMalloc_Alloc(This,cb) \ - ( (This)->lpVtbl -> Alloc(This,cb) ) - -#define IMalloc_Realloc(This,pv,cb) \ - ( (This)->lpVtbl -> Realloc(This,pv,cb) ) - -#define IMalloc_Free(This,pv) \ - ( (This)->lpVtbl -> Free(This,pv) ) - -#define IMalloc_GetSize(This,pv) \ - ( (This)->lpVtbl -> GetSize(This,pv) ) - -#define IMalloc_DidAlloc(This,pv) \ - ( (This)->lpVtbl -> DidAlloc(This,pv) ) - -#define IMalloc_HeapMinimize(This) \ - ( (This)->lpVtbl -> HeapMinimize(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMalloc_INTERFACE_DEFINED__ */ - - -#ifndef __IStdMarshalInfo_INTERFACE_DEFINED__ -#define __IStdMarshalInfo_INTERFACE_DEFINED__ - -/* interface IStdMarshalInfo */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IStdMarshalInfo *LPSTDMARSHALINFO; - - -EXTERN_C const IID IID_IStdMarshalInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000018-0000-0000-C000-000000000046") - IStdMarshalInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetClassForHandler( - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][out] */ - _Out_ CLSID *pClsid) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IStdMarshalInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IStdMarshalInfo * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IStdMarshalInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IStdMarshalInfo * This); - - HRESULT ( STDMETHODCALLTYPE *GetClassForHandler )( - IStdMarshalInfo * This, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][out] */ - _Out_ CLSID *pClsid); - - END_INTERFACE - } IStdMarshalInfoVtbl; - - interface IStdMarshalInfo - { - CONST_VTBL struct IStdMarshalInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IStdMarshalInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IStdMarshalInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IStdMarshalInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IStdMarshalInfo_GetClassForHandler(This,dwDestContext,pvDestContext,pClsid) \ - ( (This)->lpVtbl -> GetClassForHandler(This,dwDestContext,pvDestContext,pClsid) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IStdMarshalInfo_INTERFACE_DEFINED__ */ - - -#ifndef __IExternalConnection_INTERFACE_DEFINED__ -#define __IExternalConnection_INTERFACE_DEFINED__ - -/* interface IExternalConnection */ -/* [uuid][local][object] */ - -typedef /* [unique] */ IExternalConnection *LPEXTERNALCONNECTION; - -typedef -enum tagEXTCONN - { - EXTCONN_STRONG = 0x1, - EXTCONN_WEAK = 0x2, - EXTCONN_CALLABLE = 0x4 - } EXTCONN; - - -EXTERN_C const IID IID_IExternalConnection; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000019-0000-0000-C000-000000000046") - IExternalConnection : public IUnknown - { - public: - virtual DWORD STDMETHODCALLTYPE AddConnection( - /* [annotation][in] */ - _In_ DWORD extconn, - /* [annotation][in] */ - _In_ DWORD reserved) = 0; - - virtual DWORD STDMETHODCALLTYPE ReleaseConnection( - /* [annotation][in] */ - _In_ DWORD extconn, - /* [annotation][in] */ - _In_ DWORD reserved, - /* [annotation][in] */ - _In_ BOOL fLastReleaseCloses) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IExternalConnectionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IExternalConnection * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IExternalConnection * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IExternalConnection * This); - - DWORD ( STDMETHODCALLTYPE *AddConnection )( - IExternalConnection * This, - /* [annotation][in] */ - _In_ DWORD extconn, - /* [annotation][in] */ - _In_ DWORD reserved); - - DWORD ( STDMETHODCALLTYPE *ReleaseConnection )( - IExternalConnection * This, - /* [annotation][in] */ - _In_ DWORD extconn, - /* [annotation][in] */ - _In_ DWORD reserved, - /* [annotation][in] */ - _In_ BOOL fLastReleaseCloses); - - END_INTERFACE - } IExternalConnectionVtbl; - - interface IExternalConnection - { - CONST_VTBL struct IExternalConnectionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IExternalConnection_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IExternalConnection_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IExternalConnection_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IExternalConnection_AddConnection(This,extconn,reserved) \ - ( (This)->lpVtbl -> AddConnection(This,extconn,reserved) ) - -#define IExternalConnection_ReleaseConnection(This,extconn,reserved,fLastReleaseCloses) \ - ( (This)->lpVtbl -> ReleaseConnection(This,extconn,reserved,fLastReleaseCloses) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IExternalConnection_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0008 */ -/* [local] */ - -typedef /* [unique] */ __RPC_unique_pointer IMultiQI *LPMULTIQI; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -typedef struct tagMULTI_QI - { - const IID *pIID; - IUnknown *pItf; - HRESULT hr; - } MULTI_QI; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0008_v0_0_s_ifspec; - -#ifndef __IMultiQI_INTERFACE_DEFINED__ -#define __IMultiQI_INTERFACE_DEFINED__ - -/* interface IMultiQI */ -/* [async_uuid][uuid][local][object] */ - - -EXTERN_C const IID IID_IMultiQI; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000020-0000-0000-C000-000000000046") - IMultiQI : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces( - /* [annotation][in] */ - _In_ ULONG cMQIs, - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMultiQIVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMultiQI * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMultiQI * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMultiQI * This); - - HRESULT ( STDMETHODCALLTYPE *QueryMultipleInterfaces )( - IMultiQI * This, - /* [annotation][in] */ - _In_ ULONG cMQIs, - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs); - - END_INTERFACE - } IMultiQIVtbl; - - interface IMultiQI - { - CONST_VTBL struct IMultiQIVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMultiQI_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMultiQI_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMultiQI_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMultiQI_QueryMultipleInterfaces(This,cMQIs,pMQIs) \ - ( (This)->lpVtbl -> QueryMultipleInterfaces(This,cMQIs,pMQIs) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMultiQI_INTERFACE_DEFINED__ */ - - -#ifndef __AsyncIMultiQI_INTERFACE_DEFINED__ -#define __AsyncIMultiQI_INTERFACE_DEFINED__ - -/* interface AsyncIMultiQI */ -/* [uuid][local][object] */ - - -EXTERN_C const IID IID_AsyncIMultiQI; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000e0020-0000-0000-C000-000000000046") - AsyncIMultiQI : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Begin_QueryMultipleInterfaces( - /* [annotation][in] */ - _In_ ULONG cMQIs, - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_QueryMultipleInterfaces( - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIMultiQIVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - AsyncIMultiQI * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - AsyncIMultiQI * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - AsyncIMultiQI * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_QueryMultipleInterfaces )( - AsyncIMultiQI * This, - /* [annotation][in] */ - _In_ ULONG cMQIs, - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs); - - HRESULT ( STDMETHODCALLTYPE *Finish_QueryMultipleInterfaces )( - AsyncIMultiQI * This, - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs); - - END_INTERFACE - } AsyncIMultiQIVtbl; - - interface AsyncIMultiQI - { - CONST_VTBL struct AsyncIMultiQIVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIMultiQI_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIMultiQI_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIMultiQI_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIMultiQI_Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs) \ - ( (This)->lpVtbl -> Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs) ) - -#define AsyncIMultiQI_Finish_QueryMultipleInterfaces(This,pMQIs) \ - ( (This)->lpVtbl -> Finish_QueryMultipleInterfaces(This,pMQIs) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __AsyncIMultiQI_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0009 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0009_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0009_v0_0_s_ifspec; - -#ifndef __IInternalUnknown_INTERFACE_DEFINED__ -#define __IInternalUnknown_INTERFACE_DEFINED__ - -/* interface IInternalUnknown */ -/* [uuid][local][object] */ - - -EXTERN_C const IID IID_IInternalUnknown; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000021-0000-0000-C000-000000000046") - IInternalUnknown : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE QueryInternalInterface( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppv) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternalUnknownVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternalUnknown * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternalUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternalUnknown * This); - - HRESULT ( STDMETHODCALLTYPE *QueryInternalInterface )( - IInternalUnknown * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppv); - - END_INTERFACE - } IInternalUnknownVtbl; - - interface IInternalUnknown - { - CONST_VTBL struct IInternalUnknownVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternalUnknown_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternalUnknown_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternalUnknown_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternalUnknown_QueryInternalInterface(This,riid,ppv) \ - ( (This)->lpVtbl -> QueryInternalInterface(This,riid,ppv) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternalUnknown_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0010 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0010_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0010_v0_0_s_ifspec; - -#ifndef __IEnumUnknown_INTERFACE_DEFINED__ -#define __IEnumUnknown_INTERFACE_DEFINED__ - -/* interface IEnumUnknown */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumUnknown *LPENUMUNKNOWN; - - -EXTERN_C const IID IID_IEnumUnknown; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000100-0000-0000-C000-000000000046") - IEnumUnknown : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][out] */ - _Out_writes_to_(celt,*pceltFetched) IUnknown **rgelt, - /* [annotation][out] */ - _Out_opt_ ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumUnknown **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumUnknownVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumUnknown * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnumUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnumUnknown * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumUnknown * This, - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][out] */ - _Out_writes_to_(celt,*pceltFetched) IUnknown **rgelt, - /* [annotation][out] */ - _Out_opt_ ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - __RPC__in IEnumUnknown * This, - /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in IEnumUnknown * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - __RPC__in IEnumUnknown * This, - /* [out] */ __RPC__deref_out_opt IEnumUnknown **ppenum); - - END_INTERFACE - } IEnumUnknownVtbl; - - interface IEnumUnknown - { - CONST_VTBL struct IEnumUnknownVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumUnknown_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumUnknown_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumUnknown_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumUnknown_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumUnknown_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumUnknown_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumUnknown_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Proxy( - __RPC__in IEnumUnknown * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IUnknown **rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumUnknown_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumUnknown_INTERFACE_DEFINED__ */ - - -#ifndef __IEnumString_INTERFACE_DEFINED__ -#define __IEnumString_INTERFACE_DEFINED__ - -/* interface IEnumString */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumString *LPENUMSTRING; - - -EXTERN_C const IID IID_IEnumString; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000101-0000-0000-C000-000000000046") - IEnumString : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) LPOLESTR *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumString **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumStringVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumString * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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] */ - _Out_writes_to_(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; - - interface IEnumString - { - CONST_VTBL struct IEnumStringVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumString_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumString_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumString_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumString_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumString_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumString_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumString_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy( - __RPC__in IEnumString * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) LPOLESTR *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumString_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumString_INTERFACE_DEFINED__ */ - - -#ifndef __ISequentialStream_INTERFACE_DEFINED__ -#define __ISequentialStream_INTERFACE_DEFINED__ - -/* interface ISequentialStream */ -/* [unique][uuid][object] */ - - -EXTERN_C const IID IID_ISequentialStream; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0c733a30-2a1c-11ce-ade5-00aa0044773d") - ISequentialStream : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Read( - /* [annotation] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbRead) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Write( - /* [annotation] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbWritten) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISequentialStreamVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ISequentialStream * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ISequentialStream * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ISequentialStream * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )( - ISequentialStream * This, - /* [annotation] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbRead); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )( - ISequentialStream * This, - /* [annotation] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbWritten); - - END_INTERFACE - } ISequentialStreamVtbl; - - interface ISequentialStream - { - CONST_VTBL struct ISequentialStreamVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISequentialStream_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISequentialStream_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISequentialStream_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISequentialStream_Read(This,pv,cb,pcbRead) \ - ( (This)->lpVtbl -> Read(This,pv,cb,pcbRead) ) - -#define ISequentialStream_Write(This,pv,cb,pcbWritten) \ - ( (This)->lpVtbl -> Write(This,pv,cb,pcbWritten) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteRead_Proxy( - __RPC__in ISequentialStream * This, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cb, *pcbRead) byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbRead); - - -void __RPC_STUB ISequentialStream_RemoteRead_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteWrite_Proxy( - __RPC__in ISequentialStream * This, - /* [size_is][in] */ __RPC__in_ecount_full(cb) const byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbWritten); - - -void __RPC_STUB ISequentialStream_RemoteWrite_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISequentialStream_INTERFACE_DEFINED__ */ - - -#ifndef __IStream_INTERFACE_DEFINED__ -#define __IStream_INTERFACE_DEFINED__ - -/* interface IStream */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IStream *LPSTREAM; - -typedef struct tagSTATSTG - { - LPOLESTR pwcsName; - DWORD type; - ULARGE_INTEGER cbSize; - FILETIME mtime; - FILETIME ctime; - FILETIME atime; - DWORD grfMode; - DWORD grfLocksSupported; - CLSID clsid; - DWORD grfStateBits; - DWORD reserved; - } STATSTG; - -typedef -enum tagSTGTY - { - STGTY_STORAGE = 1, - STGTY_STREAM = 2, - STGTY_LOCKBYTES = 3, - STGTY_PROPERTY = 4 - } STGTY; - -typedef -enum tagSTREAM_SEEK - { - STREAM_SEEK_SET = 0, - STREAM_SEEK_CUR = 1, - STREAM_SEEK_END = 2 - } STREAM_SEEK; - -typedef -enum tagLOCKTYPE - { - LOCK_WRITE = 1, - LOCK_EXCLUSIVE = 2, - LOCK_ONLYONCE = 4 - } LOCKTYPE; - - -EXTERN_C const IID IID_IStream; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000000c-0000-0000-C000-000000000046") - IStream : public ISequentialStream - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Seek( - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *plibNewPosition) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetSize( - /* [in] */ ULARGE_INTEGER libNewSize) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE CopyTo( - /* [annotation][unique][in] */ - _In_ IStream *pstm, - /* [in] */ ULARGE_INTEGER cb, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbRead, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbWritten) = 0; - - virtual HRESULT STDMETHODCALLTYPE Commit( - /* [in] */ DWORD grfCommitFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE Revert( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE LockRegion( - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnlockRegion( - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stat( - /* [out] */ __RPC__out STATSTG *pstatstg, - /* [in] */ DWORD grfStatFlag) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IStream **ppstm) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IStreamVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IStream * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IStream * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IStream * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )( - IStream * This, - /* [annotation] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbRead); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )( - IStream * This, - /* [annotation] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _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, - /* [annotation][unique][in] */ - _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; - - interface IStream - { - CONST_VTBL struct IStreamVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IStream_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IStream_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IStream_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IStream_Read(This,pv,cb,pcbRead) \ - ( (This)->lpVtbl -> Read(This,pv,cb,pcbRead) ) - -#define IStream_Write(This,pv,cb,pcbWritten) \ - ( (This)->lpVtbl -> Write(This,pv,cb,pcbWritten) ) - - -#define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) \ - ( (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition) ) - -#define IStream_SetSize(This,libNewSize) \ - ( (This)->lpVtbl -> SetSize(This,libNewSize) ) - -#define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) \ - ( (This)->lpVtbl -> CopyTo(This,pstm,cb,pcbRead,pcbWritten) ) - -#define IStream_Commit(This,grfCommitFlags) \ - ( (This)->lpVtbl -> Commit(This,grfCommitFlags) ) - -#define IStream_Revert(This) \ - ( (This)->lpVtbl -> Revert(This) ) - -#define IStream_LockRegion(This,libOffset,cb,dwLockType) \ - ( (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType) ) - -#define IStream_UnlockRegion(This,libOffset,cb,dwLockType) \ - ( (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType) ) - -#define IStream_Stat(This,pstatstg,grfStatFlag) \ - ( (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag) ) - -#define IStream_Clone(This,ppstm) \ - ( (This)->lpVtbl -> Clone(This,ppstm) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy( - __RPC__in IStream * This, - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [out] */ __RPC__out ULARGE_INTEGER *plibNewPosition); - - -void __RPC_STUB IStream_RemoteSeek_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy( - __RPC__in IStream * This, - /* [unique][in] */ __RPC__in_opt IStream *pstm, - /* [in] */ ULARGE_INTEGER cb, - /* [out] */ __RPC__out ULARGE_INTEGER *pcbRead, - /* [out] */ __RPC__out ULARGE_INTEGER *pcbWritten); - - -void __RPC_STUB IStream_RemoteCopyTo_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IStream_INTERFACE_DEFINED__ */ - - -#ifndef __IRpcChannelBuffer_INTERFACE_DEFINED__ -#define __IRpcChannelBuffer_INTERFACE_DEFINED__ - -/* interface IRpcChannelBuffer */ -/* [uuid][object][local] */ - -typedef ULONG RPCOLEDATAREP; - -typedef struct tagRPCOLEMESSAGE - { - void *reserved1; - RPCOLEDATAREP dataRepresentation; - void *Buffer; - ULONG cbBuffer; - ULONG iMethod; - void *reserved2[ 5 ]; - ULONG rpcFlags; - } RPCOLEMESSAGE; - -typedef RPCOLEMESSAGE *PRPCOLEMESSAGE; - - -EXTERN_C const IID IID_IRpcChannelBuffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D5F56B60-593B-101A-B569-08002B2DBF7A") - IRpcChannelBuffer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetBuffer( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][in] */ - _In_ REFIID riid) = 0; - - virtual HRESULT STDMETHODCALLTYPE SendReceive( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][out] */ - _Out_opt_ ULONG *pStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE FreeBuffer( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDestCtx( - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_result_maybenull_ void **ppvDestContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsConnected( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcChannelBufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcChannelBuffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcChannelBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcChannelBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][in] */ - _In_ REFIID riid); - - HRESULT ( STDMETHODCALLTYPE *SendReceive )( - IRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][out] */ - _Out_opt_ ULONG *pStatus); - - HRESULT ( STDMETHODCALLTYPE *FreeBuffer )( - IRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtx )( - IRpcChannelBuffer * This, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_result_maybenull_ void **ppvDestContext); - - HRESULT ( STDMETHODCALLTYPE *IsConnected )( - IRpcChannelBuffer * This); - - END_INTERFACE - } IRpcChannelBufferVtbl; - - interface IRpcChannelBuffer - { - CONST_VTBL struct IRpcChannelBufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcChannelBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcChannelBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcChannelBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcChannelBuffer_GetBuffer(This,pMessage,riid) \ - ( (This)->lpVtbl -> GetBuffer(This,pMessage,riid) ) - -#define IRpcChannelBuffer_SendReceive(This,pMessage,pStatus) \ - ( (This)->lpVtbl -> SendReceive(This,pMessage,pStatus) ) - -#define IRpcChannelBuffer_FreeBuffer(This,pMessage) \ - ( (This)->lpVtbl -> FreeBuffer(This,pMessage) ) - -#define IRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtx(This,pdwDestContext,ppvDestContext) ) - -#define IRpcChannelBuffer_IsConnected(This) \ - ( (This)->lpVtbl -> IsConnected(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0015 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0015_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0015_v0_0_s_ifspec; - -#ifndef __IRpcChannelBuffer2_INTERFACE_DEFINED__ -#define __IRpcChannelBuffer2_INTERFACE_DEFINED__ - -/* interface IRpcChannelBuffer2 */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IRpcChannelBuffer2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("594f31d0-7f19-11d0-b194-00a0c90dc8bf") - IRpcChannelBuffer2 : public IRpcChannelBuffer - { - public: - virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion( - /* [annotation][out] */ - _Out_ DWORD *pdwVersion) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcChannelBuffer2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcChannelBuffer2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcChannelBuffer2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcChannelBuffer2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IRpcChannelBuffer2 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][in] */ - _In_ REFIID riid); - - HRESULT ( STDMETHODCALLTYPE *SendReceive )( - IRpcChannelBuffer2 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][out] */ - _Out_opt_ ULONG *pStatus); - - HRESULT ( STDMETHODCALLTYPE *FreeBuffer )( - IRpcChannelBuffer2 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtx )( - IRpcChannelBuffer2 * This, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_result_maybenull_ void **ppvDestContext); - - HRESULT ( STDMETHODCALLTYPE *IsConnected )( - IRpcChannelBuffer2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetProtocolVersion )( - IRpcChannelBuffer2 * This, - /* [annotation][out] */ - _Out_ DWORD *pdwVersion); - - END_INTERFACE - } IRpcChannelBuffer2Vtbl; - - interface IRpcChannelBuffer2 - { - CONST_VTBL struct IRpcChannelBuffer2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcChannelBuffer2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcChannelBuffer2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcChannelBuffer2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcChannelBuffer2_GetBuffer(This,pMessage,riid) \ - ( (This)->lpVtbl -> GetBuffer(This,pMessage,riid) ) - -#define IRpcChannelBuffer2_SendReceive(This,pMessage,pStatus) \ - ( (This)->lpVtbl -> SendReceive(This,pMessage,pStatus) ) - -#define IRpcChannelBuffer2_FreeBuffer(This,pMessage) \ - ( (This)->lpVtbl -> FreeBuffer(This,pMessage) ) - -#define IRpcChannelBuffer2_GetDestCtx(This,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtx(This,pdwDestContext,ppvDestContext) ) - -#define IRpcChannelBuffer2_IsConnected(This) \ - ( (This)->lpVtbl -> IsConnected(This) ) - - -#define IRpcChannelBuffer2_GetProtocolVersion(This,pdwVersion) \ - ( (This)->lpVtbl -> GetProtocolVersion(This,pdwVersion) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */ - - -#ifndef __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ -#define __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ - -/* interface IAsyncRpcChannelBuffer */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IAsyncRpcChannelBuffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a5029fb6-3c34-11d1-9c99-00c04fb998aa") - IAsyncRpcChannelBuffer : public IRpcChannelBuffer2 - { - public: - virtual HRESULT STDMETHODCALLTYPE Send( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ ISynchronize *pSync, - /* [annotation][out] */ - _Out_ ULONG *pulStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE Receive( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ ULONG *pulStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx( - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_opt_result_maybenull_ void **ppvDestContext) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAsyncRpcChannelBufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAsyncRpcChannelBuffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAsyncRpcChannelBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAsyncRpcChannelBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][in] */ - _In_ REFIID riid); - - HRESULT ( STDMETHODCALLTYPE *SendReceive )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][out] */ - _Out_opt_ ULONG *pStatus); - - HRESULT ( STDMETHODCALLTYPE *FreeBuffer )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtx )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_result_maybenull_ void **ppvDestContext); - - HRESULT ( STDMETHODCALLTYPE *IsConnected )( - IAsyncRpcChannelBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *GetProtocolVersion )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out] */ - _Out_ DWORD *pdwVersion); - - HRESULT ( STDMETHODCALLTYPE *Send )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ ISynchronize *pSync, - /* [annotation][out] */ - _Out_ ULONG *pulStatus); - - HRESULT ( STDMETHODCALLTYPE *Receive )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ ULONG *pulStatus); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtxEx )( - IAsyncRpcChannelBuffer * This, - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_opt_result_maybenull_ void **ppvDestContext); - - END_INTERFACE - } IAsyncRpcChannelBufferVtbl; - - interface IAsyncRpcChannelBuffer - { - CONST_VTBL struct IAsyncRpcChannelBufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAsyncRpcChannelBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAsyncRpcChannelBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAsyncRpcChannelBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAsyncRpcChannelBuffer_GetBuffer(This,pMessage,riid) \ - ( (This)->lpVtbl -> GetBuffer(This,pMessage,riid) ) - -#define IAsyncRpcChannelBuffer_SendReceive(This,pMessage,pStatus) \ - ( (This)->lpVtbl -> SendReceive(This,pMessage,pStatus) ) - -#define IAsyncRpcChannelBuffer_FreeBuffer(This,pMessage) \ - ( (This)->lpVtbl -> FreeBuffer(This,pMessage) ) - -#define IAsyncRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtx(This,pdwDestContext,ppvDestContext) ) - -#define IAsyncRpcChannelBuffer_IsConnected(This) \ - ( (This)->lpVtbl -> IsConnected(This) ) - - -#define IAsyncRpcChannelBuffer_GetProtocolVersion(This,pdwVersion) \ - ( (This)->lpVtbl -> GetProtocolVersion(This,pdwVersion) ) - - -#define IAsyncRpcChannelBuffer_Send(This,pMsg,pSync,pulStatus) \ - ( (This)->lpVtbl -> Send(This,pMsg,pSync,pulStatus) ) - -#define IAsyncRpcChannelBuffer_Receive(This,pMsg,pulStatus) \ - ( (This)->lpVtbl -> Receive(This,pMsg,pulStatus) ) - -#define IAsyncRpcChannelBuffer_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ */ - - -#ifndef __IRpcChannelBuffer3_INTERFACE_DEFINED__ -#define __IRpcChannelBuffer3_INTERFACE_DEFINED__ - -/* interface IRpcChannelBuffer3 */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IRpcChannelBuffer3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("25B15600-0115-11d0-BF0D-00AA00B8DFD2") - IRpcChannelBuffer3 : public IRpcChannelBuffer2 - { - public: - virtual HRESULT STDMETHODCALLTYPE Send( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ ULONG *pulStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE Receive( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ ULONG ulSize, - /* [annotation][out] */ - _Out_ ULONG *pulStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE Cancel( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCallContext( - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **pInterface) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx( - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_opt_result_maybenull_ void **ppvDestContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetState( - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pState) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterAsync( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ IAsyncManager *pAsyncMgr) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcChannelBuffer3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcChannelBuffer3 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcChannelBuffer3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcChannelBuffer3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][in] */ - _In_ REFIID riid); - - HRESULT ( STDMETHODCALLTYPE *SendReceive )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][out] */ - _Out_opt_ ULONG *pStatus); - - HRESULT ( STDMETHODCALLTYPE *FreeBuffer )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtx )( - IRpcChannelBuffer3 * This, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_result_maybenull_ void **ppvDestContext); - - HRESULT ( STDMETHODCALLTYPE *IsConnected )( - IRpcChannelBuffer3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetProtocolVersion )( - IRpcChannelBuffer3 * This, - /* [annotation][out] */ - _Out_ DWORD *pdwVersion); - - HRESULT ( STDMETHODCALLTYPE *Send )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ ULONG *pulStatus); - - HRESULT ( STDMETHODCALLTYPE *Receive )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ ULONG ulSize, - /* [annotation][out] */ - _Out_ ULONG *pulStatus); - - HRESULT ( STDMETHODCALLTYPE *Cancel )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg); - - HRESULT ( STDMETHODCALLTYPE *GetCallContext )( - IRpcChannelBuffer3 * This, - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **pInterface); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtxEx )( - IRpcChannelBuffer3 * This, - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_opt_result_maybenull_ void **ppvDestContext); - - HRESULT ( STDMETHODCALLTYPE *GetState )( - IRpcChannelBuffer3 * This, - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pState); - - HRESULT ( STDMETHODCALLTYPE *RegisterAsync )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ IAsyncManager *pAsyncMgr); - - END_INTERFACE - } IRpcChannelBuffer3Vtbl; - - interface IRpcChannelBuffer3 - { - CONST_VTBL struct IRpcChannelBuffer3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcChannelBuffer3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcChannelBuffer3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcChannelBuffer3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcChannelBuffer3_GetBuffer(This,pMessage,riid) \ - ( (This)->lpVtbl -> GetBuffer(This,pMessage,riid) ) - -#define IRpcChannelBuffer3_SendReceive(This,pMessage,pStatus) \ - ( (This)->lpVtbl -> SendReceive(This,pMessage,pStatus) ) - -#define IRpcChannelBuffer3_FreeBuffer(This,pMessage) \ - ( (This)->lpVtbl -> FreeBuffer(This,pMessage) ) - -#define IRpcChannelBuffer3_GetDestCtx(This,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtx(This,pdwDestContext,ppvDestContext) ) - -#define IRpcChannelBuffer3_IsConnected(This) \ - ( (This)->lpVtbl -> IsConnected(This) ) - - -#define IRpcChannelBuffer3_GetProtocolVersion(This,pdwVersion) \ - ( (This)->lpVtbl -> GetProtocolVersion(This,pdwVersion) ) - - -#define IRpcChannelBuffer3_Send(This,pMsg,pulStatus) \ - ( (This)->lpVtbl -> Send(This,pMsg,pulStatus) ) - -#define IRpcChannelBuffer3_Receive(This,pMsg,ulSize,pulStatus) \ - ( (This)->lpVtbl -> Receive(This,pMsg,ulSize,pulStatus) ) - -#define IRpcChannelBuffer3_Cancel(This,pMsg) \ - ( (This)->lpVtbl -> Cancel(This,pMsg) ) - -#define IRpcChannelBuffer3_GetCallContext(This,pMsg,riid,pInterface) \ - ( (This)->lpVtbl -> GetCallContext(This,pMsg,riid,pInterface) ) - -#define IRpcChannelBuffer3_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) ) - -#define IRpcChannelBuffer3_GetState(This,pMsg,pState) \ - ( (This)->lpVtbl -> GetState(This,pMsg,pState) ) - -#define IRpcChannelBuffer3_RegisterAsync(This,pMsg,pAsyncMgr) \ - ( (This)->lpVtbl -> RegisterAsync(This,pMsg,pAsyncMgr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */ - - -#ifndef __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ -#define __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ - -/* interface IRpcSyntaxNegotiate */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IRpcSyntaxNegotiate; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("58a08519-24c8-4935-b482-3fd823333a4f") - IRpcSyntaxNegotiate : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE NegotiateSyntax( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcSyntaxNegotiateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcSyntaxNegotiate * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcSyntaxNegotiate * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcSyntaxNegotiate * This); - - HRESULT ( STDMETHODCALLTYPE *NegotiateSyntax )( - IRpcSyntaxNegotiate * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg); - - END_INTERFACE - } IRpcSyntaxNegotiateVtbl; - - interface IRpcSyntaxNegotiate - { - CONST_VTBL struct IRpcSyntaxNegotiateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcSyntaxNegotiate_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcSyntaxNegotiate_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcSyntaxNegotiate_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcSyntaxNegotiate_NegotiateSyntax(This,pMsg) \ - ( (This)->lpVtbl -> NegotiateSyntax(This,pMsg) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ */ - - -#ifndef __IRpcProxyBuffer_INTERFACE_DEFINED__ -#define __IRpcProxyBuffer_INTERFACE_DEFINED__ - -/* interface IRpcProxyBuffer */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IRpcProxyBuffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D5F56A34-593B-101A-B569-08002B2DBF7A") - IRpcProxyBuffer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Connect( - /* [annotation][unique][in] */ - _In_ IRpcChannelBuffer *pRpcChannelBuffer) = 0; - - virtual void STDMETHODCALLTYPE Disconnect( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcProxyBufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcProxyBuffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcProxyBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcProxyBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *Connect )( - IRpcProxyBuffer * This, - /* [annotation][unique][in] */ - _In_ IRpcChannelBuffer *pRpcChannelBuffer); - - void ( STDMETHODCALLTYPE *Disconnect )( - IRpcProxyBuffer * This); - - END_INTERFACE - } IRpcProxyBufferVtbl; - - interface IRpcProxyBuffer - { - CONST_VTBL struct IRpcProxyBufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcProxyBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcProxyBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcProxyBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcProxyBuffer_Connect(This,pRpcChannelBuffer) \ - ( (This)->lpVtbl -> Connect(This,pRpcChannelBuffer) ) - -#define IRpcProxyBuffer_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0020 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0020_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0020_v0_0_s_ifspec; - -#ifndef __IRpcStubBuffer_INTERFACE_DEFINED__ -#define __IRpcStubBuffer_INTERFACE_DEFINED__ - -/* interface IRpcStubBuffer */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IRpcStubBuffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D5F56AFC-593B-101A-B569-08002B2DBF7A") - IRpcStubBuffer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Connect( - /* [annotation][in] */ - _In_ IUnknown *pUnkServer) = 0; - - virtual void STDMETHODCALLTYPE Disconnect( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Invoke( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *_prpcmsg, - /* [annotation][in] */ - _In_ IRpcChannelBuffer *_pRpcChannelBuffer) = 0; - - virtual IRpcStubBuffer *STDMETHODCALLTYPE IsIIDSupported( - /* [annotation][in] */ - _In_ REFIID riid) = 0; - - virtual ULONG STDMETHODCALLTYPE CountRefs( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface( - /* [annotation][out] */ - _Outptr_ void **ppv) = 0; - - virtual void STDMETHODCALLTYPE DebugServerRelease( - /* [annotation][in] */ - _In_ void *pv) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcStubBufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcStubBuffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcStubBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcStubBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *Connect )( - IRpcStubBuffer * This, - /* [annotation][in] */ - _In_ IUnknown *pUnkServer); - - void ( STDMETHODCALLTYPE *Disconnect )( - IRpcStubBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *Invoke )( - IRpcStubBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *_prpcmsg, - /* [annotation][in] */ - _In_ IRpcChannelBuffer *_pRpcChannelBuffer); - - IRpcStubBuffer *( STDMETHODCALLTYPE *IsIIDSupported )( - IRpcStubBuffer * This, - /* [annotation][in] */ - _In_ REFIID riid); - - ULONG ( STDMETHODCALLTYPE *CountRefs )( - IRpcStubBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *DebugServerQueryInterface )( - IRpcStubBuffer * This, - /* [annotation][out] */ - _Outptr_ void **ppv); - - void ( STDMETHODCALLTYPE *DebugServerRelease )( - IRpcStubBuffer * This, - /* [annotation][in] */ - _In_ void *pv); - - END_INTERFACE - } IRpcStubBufferVtbl; - - interface IRpcStubBuffer - { - CONST_VTBL struct IRpcStubBufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcStubBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcStubBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcStubBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcStubBuffer_Connect(This,pUnkServer) \ - ( (This)->lpVtbl -> Connect(This,pUnkServer) ) - -#define IRpcStubBuffer_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IRpcStubBuffer_Invoke(This,_prpcmsg,_pRpcChannelBuffer) \ - ( (This)->lpVtbl -> Invoke(This,_prpcmsg,_pRpcChannelBuffer) ) - -#define IRpcStubBuffer_IsIIDSupported(This,riid) \ - ( (This)->lpVtbl -> IsIIDSupported(This,riid) ) - -#define IRpcStubBuffer_CountRefs(This) \ - ( (This)->lpVtbl -> CountRefs(This) ) - -#define IRpcStubBuffer_DebugServerQueryInterface(This,ppv) \ - ( (This)->lpVtbl -> DebugServerQueryInterface(This,ppv) ) - -#define IRpcStubBuffer_DebugServerRelease(This,pv) \ - ( (This)->lpVtbl -> DebugServerRelease(This,pv) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcStubBuffer_INTERFACE_DEFINED__ */ - - -#ifndef __IPSFactoryBuffer_INTERFACE_DEFINED__ -#define __IPSFactoryBuffer_INTERFACE_DEFINED__ - -/* interface IPSFactoryBuffer */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IPSFactoryBuffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D5F569D0-593B-101A-B569-08002B2DBF7A") - IPSFactoryBuffer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateProxy( - /* [annotation][in] */ - _In_ IUnknown *pUnkOuter, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ IRpcProxyBuffer **ppProxy, - /* [annotation][out] */ - _Outptr_ void **ppv) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateStub( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pUnkServer, - /* [annotation][out] */ - _Outptr_ IRpcStubBuffer **ppStub) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPSFactoryBufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IPSFactoryBuffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IPSFactoryBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IPSFactoryBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *CreateProxy )( - IPSFactoryBuffer * This, - /* [annotation][in] */ - _In_ IUnknown *pUnkOuter, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ IRpcProxyBuffer **ppProxy, - /* [annotation][out] */ - _Outptr_ void **ppv); - - HRESULT ( STDMETHODCALLTYPE *CreateStub )( - IPSFactoryBuffer * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pUnkServer, - /* [annotation][out] */ - _Outptr_ IRpcStubBuffer **ppStub); - - END_INTERFACE - } IPSFactoryBufferVtbl; - - interface IPSFactoryBuffer - { - CONST_VTBL struct IPSFactoryBufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPSFactoryBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPSFactoryBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPSFactoryBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPSFactoryBuffer_CreateProxy(This,pUnkOuter,riid,ppProxy,ppv) \ - ( (This)->lpVtbl -> CreateProxy(This,pUnkOuter,riid,ppProxy,ppv) ) - -#define IPSFactoryBuffer_CreateStub(This,riid,pUnkServer,ppStub) \ - ( (This)->lpVtbl -> CreateStub(This,riid,pUnkServer,ppStub) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0022 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM -// This interface is only valid on Windows NT 4.0 -typedef struct SChannelHookCallInfo - { - IID iid; - DWORD cbSize; - GUID uCausality; - DWORD dwServerPid; - DWORD iMethod; - void *pObject; - } SChannelHookCallInfo; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0022_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0022_v0_0_s_ifspec; - -#ifndef __IChannelHook_INTERFACE_DEFINED__ -#define __IChannelHook_INTERFACE_DEFINED__ - -/* interface IChannelHook */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IChannelHook; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1008c4a0-7613-11cf-9af1-0020af6e72f4") - IChannelHook : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE ClientGetSize( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Out_ ULONG *pDataSize) = 0; - - virtual void STDMETHODCALLTYPE ClientFillBuffer( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _Inout_ ULONG *pDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer) = 0; - - virtual void STDMETHODCALLTYPE ClientNotify( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ ULONG cbDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ DWORD lDataRep, - /* [annotation][in] */ - _In_ HRESULT hrFault) = 0; - - virtual void STDMETHODCALLTYPE ServerNotify( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ ULONG cbDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ DWORD lDataRep) = 0; - - virtual void STDMETHODCALLTYPE ServerGetSize( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ HRESULT hrFault, - /* [annotation][out] */ - _Out_ ULONG *pDataSize) = 0; - - virtual void STDMETHODCALLTYPE ServerFillBuffer( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _Inout_ ULONG *pDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ HRESULT hrFault) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IChannelHookVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IChannelHook * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IChannelHook * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IChannelHook * This); - - void ( STDMETHODCALLTYPE *ClientGetSize )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Out_ ULONG *pDataSize); - - void ( STDMETHODCALLTYPE *ClientFillBuffer )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _Inout_ ULONG *pDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer); - - void ( STDMETHODCALLTYPE *ClientNotify )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ ULONG cbDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ DWORD lDataRep, - /* [annotation][in] */ - _In_ HRESULT hrFault); - - void ( STDMETHODCALLTYPE *ServerNotify )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ ULONG cbDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ DWORD lDataRep); - - void ( STDMETHODCALLTYPE *ServerGetSize )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ HRESULT hrFault, - /* [annotation][out] */ - _Out_ ULONG *pDataSize); - - void ( STDMETHODCALLTYPE *ServerFillBuffer )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _Inout_ ULONG *pDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ HRESULT hrFault); - - END_INTERFACE - } IChannelHookVtbl; - - interface IChannelHook - { - CONST_VTBL struct IChannelHookVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IChannelHook_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IChannelHook_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IChannelHook_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IChannelHook_ClientGetSize(This,uExtent,riid,pDataSize) \ - ( (This)->lpVtbl -> ClientGetSize(This,uExtent,riid,pDataSize) ) - -#define IChannelHook_ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer) \ - ( (This)->lpVtbl -> ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer) ) - -#define IChannelHook_ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault) \ - ( (This)->lpVtbl -> ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault) ) - -#define IChannelHook_ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep) \ - ( (This)->lpVtbl -> ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep) ) - -#define IChannelHook_ServerGetSize(This,uExtent,riid,hrFault,pDataSize) \ - ( (This)->lpVtbl -> ServerGetSize(This,uExtent,riid,hrFault,pDataSize) ) - -#define IChannelHook_ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault) \ - ( (This)->lpVtbl -> ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IChannelHook_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0023 */ -/* [local] */ - -#endif //DCOM -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM -// This interface is only valid on Windows NT 4.0 -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0023_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0023_v0_0_s_ifspec; - -#ifndef __IClientSecurity_INTERFACE_DEFINED__ -#define __IClientSecurity_INTERFACE_DEFINED__ - -/* interface IClientSecurity */ -/* [uuid][object][local] */ - -typedef struct tagSOLE_AUTHENTICATION_SERVICE - { - DWORD dwAuthnSvc; - DWORD dwAuthzSvc; - OLECHAR *pPrincipalName; - HRESULT hr; - } SOLE_AUTHENTICATION_SERVICE; - -typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE; - -typedef -enum tagEOLE_AUTHENTICATION_CAPABILITIES - { - EOAC_NONE = 0, - EOAC_MUTUAL_AUTH = 0x1, - EOAC_STATIC_CLOAKING = 0x20, - EOAC_DYNAMIC_CLOAKING = 0x40, - EOAC_ANY_AUTHORITY = 0x80, - EOAC_MAKE_FULLSIC = 0x100, - EOAC_DEFAULT = 0x800, - EOAC_SECURE_REFS = 0x2, - EOAC_ACCESS_CONTROL = 0x4, - EOAC_APPID = 0x8, - EOAC_DYNAMIC = 0x10, - EOAC_REQUIRE_FULLSIC = 0x200, - EOAC_AUTO_IMPERSONATE = 0x400, - EOAC_DISABLE_AAA = 0x1000, - EOAC_NO_CUSTOM_MARSHAL = 0x2000, - EOAC_RESERVED1 = 0x4000 - } EOLE_AUTHENTICATION_CAPABILITIES; - -#define COLE_DEFAULT_PRINCIPAL ( ( OLECHAR * )( INT_PTR )-1 ) - -#define COLE_DEFAULT_AUTHINFO ( ( void * )( INT_PTR )-1 ) - -typedef struct tagSOLE_AUTHENTICATION_INFO - { - DWORD dwAuthnSvc; - DWORD dwAuthzSvc; - void *pAuthInfo; - } SOLE_AUTHENTICATION_INFO; - -typedef struct tagSOLE_AUTHENTICATION_INFO *PSOLE_AUTHENTICATION_INFO; - -typedef struct tagSOLE_AUTHENTICATION_LIST - { - DWORD cAuthInfo; - SOLE_AUTHENTICATION_INFO *aAuthInfo; - } SOLE_AUTHENTICATION_LIST; - -typedef struct tagSOLE_AUTHENTICATION_LIST *PSOLE_AUTHENTICATION_LIST; - - -EXTERN_C const IID IID_IClientSecurity; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000013D-0000-0000-C000-000000000046") - IClientSecurity : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE QueryBlanket( - /* [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] */ - _Outptr_result_maybenull_ void **pAuthInfo, - /* [annotation][out] */ - _Out_opt_ DWORD *pCapabilites) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBlanket( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CopyProxy( - /* [annotation][in] */ - _In_ IUnknown *pProxy, - /* [annotation][out] */ - _Outptr_ IUnknown **ppCopy) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IClientSecurityVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IClientSecurity * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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] */ - _Outptr_result_maybenull_ 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] */ - _Outptr_ IUnknown **ppCopy); - - END_INTERFACE - } IClientSecurityVtbl; - - interface IClientSecurity - { - CONST_VTBL struct IClientSecurityVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IClientSecurity_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IClientSecurity_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IClientSecurity_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IClientSecurity_QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites) \ - ( (This)->lpVtbl -> QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites) ) - -#define IClientSecurity_SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities) \ - ( (This)->lpVtbl -> SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities) ) - -#define IClientSecurity_CopyProxy(This,pProxy,ppCopy) \ - ( (This)->lpVtbl -> CopyProxy(This,pProxy,ppCopy) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IClientSecurity_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0024 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0024_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0024_v0_0_s_ifspec; - -#ifndef __IServerSecurity_INTERFACE_DEFINED__ -#define __IServerSecurity_INTERFACE_DEFINED__ - -/* interface IServerSecurity */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IServerSecurity; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000013E-0000-0000-C000-000000000046") - IServerSecurity : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE QueryBlanket( - /* [annotation][out] */ - _Out_opt_ 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] */ - _Outptr_result_maybenull_ void **pPrivs, - /* [annotation][out][in] */ - _Inout_opt_ DWORD *pCapabilities) = 0; - - virtual HRESULT STDMETHODCALLTYPE ImpersonateClient( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE RevertToSelf( void) = 0; - - virtual BOOL STDMETHODCALLTYPE IsImpersonating( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IServerSecurityVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IServerSecurity * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IServerSecurity * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IServerSecurity * This); - - HRESULT ( STDMETHODCALLTYPE *QueryBlanket )( - IServerSecurity * This, - /* [annotation][out] */ - _Out_opt_ 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] */ - _Outptr_result_maybenull_ void **pPrivs, - /* [annotation][out][in] */ - _Inout_opt_ DWORD *pCapabilities); - - HRESULT ( STDMETHODCALLTYPE *ImpersonateClient )( - IServerSecurity * This); - - HRESULT ( STDMETHODCALLTYPE *RevertToSelf )( - IServerSecurity * This); - - BOOL ( STDMETHODCALLTYPE *IsImpersonating )( - IServerSecurity * This); - - END_INTERFACE - } IServerSecurityVtbl; - - interface IServerSecurity - { - CONST_VTBL struct IServerSecurityVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IServerSecurity_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IServerSecurity_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IServerSecurity_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IServerSecurity_QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities) \ - ( (This)->lpVtbl -> QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities) ) - -#define IServerSecurity_ImpersonateClient(This) \ - ( (This)->lpVtbl -> ImpersonateClient(This) ) - -#define IServerSecurity_RevertToSelf(This) \ - ( (This)->lpVtbl -> RevertToSelf(This) ) - -#define IServerSecurity_IsImpersonating(This) \ - ( (This)->lpVtbl -> IsImpersonating(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IServerSecurity_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0025 */ -/* [local] */ - -typedef -enum tagRPCOPT_PROPERTIES - { - COMBND_RPCTIMEOUT = 0x1, - COMBND_SERVER_LOCALITY = 0x2, - COMBND_RESERVED1 = 0x4, - COMBND_RESERVED2 = 0x5, - COMBND_RESERVED3 = 0x8, - COMBND_RESERVED4 = 0x10 - } RPCOPT_PROPERTIES; - -typedef -enum tagRPCOPT_SERVER_LOCALITY_VALUES - { - SERVER_LOCALITY_PROCESS_LOCAL = 0, - SERVER_LOCALITY_MACHINE_LOCAL = 1, - SERVER_LOCALITY_REMOTE = 2 - } RPCOPT_SERVER_LOCALITY_VALUES; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0025_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0025_v0_0_s_ifspec; - -#ifndef __IRpcOptions_INTERFACE_DEFINED__ -#define __IRpcOptions_INTERFACE_DEFINED__ - -/* interface IRpcOptions */ -/* [uuid][local][object] */ - - -EXTERN_C const IID IID_IRpcOptions; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000144-0000-0000-C000-000000000046") - IRpcOptions : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Set( - /* [annotation][in] */ - _In_ IUnknown *pPrx, - /* [annotation][in] */ - _In_ RPCOPT_PROPERTIES dwProperty, - /* [annotation][in] */ - _In_ ULONG_PTR dwValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE Query( - /* [annotation][in] */ - _In_ IUnknown *pPrx, - /* [annotation][in] */ - _In_ RPCOPT_PROPERTIES dwProperty, - /* [annotation][out] */ - _Out_ ULONG_PTR *pdwValue) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcOptionsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcOptions * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcOptions * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcOptions * This); - - HRESULT ( STDMETHODCALLTYPE *Set )( - IRpcOptions * This, - /* [annotation][in] */ - _In_ IUnknown *pPrx, - /* [annotation][in] */ - _In_ RPCOPT_PROPERTIES dwProperty, - /* [annotation][in] */ - _In_ ULONG_PTR dwValue); - - HRESULT ( STDMETHODCALLTYPE *Query )( - IRpcOptions * This, - /* [annotation][in] */ - _In_ IUnknown *pPrx, - /* [annotation][in] */ - _In_ RPCOPT_PROPERTIES dwProperty, - /* [annotation][out] */ - _Out_ ULONG_PTR *pdwValue); - - END_INTERFACE - } IRpcOptionsVtbl; - - interface IRpcOptions - { - CONST_VTBL struct IRpcOptionsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcOptions_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcOptions_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcOptions_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcOptions_Set(This,pPrx,dwProperty,dwValue) \ - ( (This)->lpVtbl -> Set(This,pPrx,dwProperty,dwValue) ) - -#define IRpcOptions_Query(This,pPrx,dwProperty,pdwValue) \ - ( (This)->lpVtbl -> Query(This,pPrx,dwProperty,pdwValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcOptions_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0026 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -typedef -enum tagGLOBALOPT_PROPERTIES - { - COMGLB_EXCEPTION_HANDLING = 1, - COMGLB_APPID = 2, - COMGLB_RPC_THREADPOOL_SETTING = 3, - COMGLB_RO_SETTINGS = 4, - COMGLB_UNMARSHALING_POLICY = 5, - COMGLB_PROPERTIES_RESERVED1 = 6, - COMGLB_PROPERTIES_RESERVED2 = 7, - COMGLB_PROPERTIES_RESERVED3 = 8 - } GLOBALOPT_PROPERTIES; - -typedef -enum tagGLOBALOPT_EH_VALUES - { - COMGLB_EXCEPTION_HANDLE = 0, - COMGLB_EXCEPTION_DONOT_HANDLE_FATAL = 1, - COMGLB_EXCEPTION_DONOT_HANDLE = COMGLB_EXCEPTION_DONOT_HANDLE_FATAL, - COMGLB_EXCEPTION_DONOT_HANDLE_ANY = 2 - } GLOBALOPT_EH_VALUES; - -typedef -enum tagGLOBALOPT_RPCTP_VALUES - { - COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0, - COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1 - } GLOBALOPT_RPCTP_VALUES; - -typedef -enum tagGLOBALOPT_RO_FLAGS - { - COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 0x1, - COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 0x2, - COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 0x4, - COMGLB_FAST_RUNDOWN = 0x8, - COMGLB_RESERVED1 = 0x10, - COMGLB_RESERVED2 = 0x20, - COMGLB_RESERVED3 = 0x40, - COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 0x80, - COMGLB_RESERVED4 = 0x100, - COMGLB_RESERVED5 = 0x200, - COMGLB_RESERVED6 = 0x400 - } GLOBALOPT_RO_FLAGS; - -typedef -enum tagGLOBALOPT_UNMARSHALING_POLICY_VALUES - { - COMGLB_UNMARSHALING_POLICY_NORMAL = 0, - COMGLB_UNMARSHALING_POLICY_STRONG = 1, - COMGLB_UNMARSHALING_POLICY_HYBRID = 2 - } GLOBALOPT_UNMARSHALING_POLICY_VALUES; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0026_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0026_v0_0_s_ifspec; - -#ifndef __IGlobalOptions_INTERFACE_DEFINED__ -#define __IGlobalOptions_INTERFACE_DEFINED__ - -/* interface IGlobalOptions */ -/* [uuid][unique][local][object] */ - - -EXTERN_C const IID IID_IGlobalOptions; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000015B-0000-0000-C000-000000000046") - IGlobalOptions : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Set( - /* [annotation][in] */ - _In_ GLOBALOPT_PROPERTIES dwProperty, - /* [annotation][in] */ - _In_ ULONG_PTR dwValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE Query( - /* [annotation][in] */ - _In_ GLOBALOPT_PROPERTIES dwProperty, - /* [annotation][out] */ - _Out_ ULONG_PTR *pdwValue) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IGlobalOptionsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IGlobalOptions * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IGlobalOptions * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IGlobalOptions * This); - - HRESULT ( STDMETHODCALLTYPE *Set )( - IGlobalOptions * This, - /* [annotation][in] */ - _In_ GLOBALOPT_PROPERTIES dwProperty, - /* [annotation][in] */ - _In_ ULONG_PTR dwValue); - - HRESULT ( STDMETHODCALLTYPE *Query )( - IGlobalOptions * This, - /* [annotation][in] */ - _In_ GLOBALOPT_PROPERTIES dwProperty, - /* [annotation][out] */ - _Out_ ULONG_PTR *pdwValue); - - END_INTERFACE - } IGlobalOptionsVtbl; - - interface IGlobalOptions - { - CONST_VTBL struct IGlobalOptionsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IGlobalOptions_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IGlobalOptions_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IGlobalOptions_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IGlobalOptions_Set(This,dwProperty,dwValue) \ - ( (This)->lpVtbl -> Set(This,dwProperty,dwValue) ) - -#define IGlobalOptions_Query(This,dwProperty,pdwValue) \ - ( (This)->lpVtbl -> Query(This,dwProperty,pdwValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IGlobalOptions_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0027 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#endif //DCOM -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0027_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0027_v0_0_s_ifspec; - -#ifndef __ISurrogate_INTERFACE_DEFINED__ -#define __ISurrogate_INTERFACE_DEFINED__ - -/* interface ISurrogate */ -/* [object][unique][version][uuid] */ - -typedef /* [unique] */ __RPC_unique_pointer ISurrogate *LPSURROGATE; - - -EXTERN_C const IID IID_ISurrogate; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000022-0000-0000-C000-000000000046") - ISurrogate : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE LoadDllServer( - /* [in] */ __RPC__in REFCLSID Clsid) = 0; - - virtual HRESULT STDMETHODCALLTYPE FreeSurrogate( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISurrogateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ISurrogate * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ISurrogate * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ISurrogate * This); - - HRESULT ( STDMETHODCALLTYPE *LoadDllServer )( - __RPC__in ISurrogate * This, - /* [in] */ __RPC__in REFCLSID Clsid); - - HRESULT ( STDMETHODCALLTYPE *FreeSurrogate )( - __RPC__in ISurrogate * This); - - END_INTERFACE - } ISurrogateVtbl; - - interface ISurrogate - { - CONST_VTBL struct ISurrogateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISurrogate_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISurrogate_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISurrogate_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISurrogate_LoadDllServer(This,Clsid) \ - ( (This)->lpVtbl -> LoadDllServer(This,Clsid) ) - -#define ISurrogate_FreeSurrogate(This) \ - ( (This)->lpVtbl -> FreeSurrogate(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISurrogate_INTERFACE_DEFINED__ */ - - -#ifndef __IGlobalInterfaceTable_INTERFACE_DEFINED__ -#define __IGlobalInterfaceTable_INTERFACE_DEFINED__ - -/* interface IGlobalInterfaceTable */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IGlobalInterfaceTable *LPGLOBALINTERFACETABLE; - - -EXTERN_C const IID IID_IGlobalInterfaceTable; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000146-0000-0000-C000-000000000046") - IGlobalInterfaceTable : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal( - /* [annotation][in] */ - _In_ IUnknown *pUnk, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal( - /* [annotation][in] */ - _In_ DWORD dwCookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal( - /* [annotation][in] */ - _In_ DWORD dwCookie, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppv) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IGlobalInterfaceTableVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IGlobalInterfaceTable * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IGlobalInterfaceTable * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IGlobalInterfaceTable * This); - - HRESULT ( STDMETHODCALLTYPE *RegisterInterfaceInGlobal )( - IGlobalInterfaceTable * This, - /* [annotation][in] */ - _In_ IUnknown *pUnk, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - HRESULT ( STDMETHODCALLTYPE *RevokeInterfaceFromGlobal )( - IGlobalInterfaceTable * This, - /* [annotation][in] */ - _In_ DWORD dwCookie); - - HRESULT ( STDMETHODCALLTYPE *GetInterfaceFromGlobal )( - IGlobalInterfaceTable * This, - /* [annotation][in] */ - _In_ DWORD dwCookie, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppv); - - END_INTERFACE - } IGlobalInterfaceTableVtbl; - - interface IGlobalInterfaceTable - { - CONST_VTBL struct IGlobalInterfaceTableVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IGlobalInterfaceTable_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IGlobalInterfaceTable_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IGlobalInterfaceTable_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IGlobalInterfaceTable_RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie) \ - ( (This)->lpVtbl -> RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie) ) - -#define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(This,dwCookie) \ - ( (This)->lpVtbl -> RevokeInterfaceFromGlobal(This,dwCookie) ) - -#define IGlobalInterfaceTable_GetInterfaceFromGlobal(This,dwCookie,riid,ppv) \ - ( (This)->lpVtbl -> GetInterfaceFromGlobal(This,dwCookie,riid,ppv) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0029 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0029_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0029_v0_0_s_ifspec; - -#ifndef __ISynchronize_INTERFACE_DEFINED__ -#define __ISynchronize_INTERFACE_DEFINED__ - -/* interface ISynchronize */ -/* [uuid][object] */ - - -EXTERN_C const IID IID_ISynchronize; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000030-0000-0000-C000-000000000046") - ISynchronize : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Wait( - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwMilliseconds) = 0; - - virtual HRESULT STDMETHODCALLTYPE Signal( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISynchronizeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ISynchronize * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ISynchronize * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ISynchronize * This); - - HRESULT ( STDMETHODCALLTYPE *Wait )( - __RPC__in ISynchronize * This, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwMilliseconds); - - HRESULT ( STDMETHODCALLTYPE *Signal )( - __RPC__in ISynchronize * This); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in ISynchronize * This); - - END_INTERFACE - } ISynchronizeVtbl; - - interface ISynchronize - { - CONST_VTBL struct ISynchronizeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISynchronize_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISynchronize_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISynchronize_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISynchronize_Wait(This,dwFlags,dwMilliseconds) \ - ( (This)->lpVtbl -> Wait(This,dwFlags,dwMilliseconds) ) - -#define ISynchronize_Signal(This) \ - ( (This)->lpVtbl -> Signal(This) ) - -#define ISynchronize_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISynchronize_INTERFACE_DEFINED__ */ - - -#ifndef __ISynchronizeHandle_INTERFACE_DEFINED__ -#define __ISynchronizeHandle_INTERFACE_DEFINED__ - -/* interface ISynchronizeHandle */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_ISynchronizeHandle; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000031-0000-0000-C000-000000000046") - ISynchronizeHandle : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetHandle( - /* [annotation][out] */ - _Out_ HANDLE *ph) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISynchronizeHandleVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISynchronizeHandle * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISynchronizeHandle * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISynchronizeHandle * This); - - HRESULT ( STDMETHODCALLTYPE *GetHandle )( - ISynchronizeHandle * This, - /* [annotation][out] */ - _Out_ HANDLE *ph); - - END_INTERFACE - } ISynchronizeHandleVtbl; - - interface ISynchronizeHandle - { - CONST_VTBL struct ISynchronizeHandleVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISynchronizeHandle_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISynchronizeHandle_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISynchronizeHandle_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISynchronizeHandle_GetHandle(This,ph) \ - ( (This)->lpVtbl -> GetHandle(This,ph) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISynchronizeHandle_INTERFACE_DEFINED__ */ - - -#ifndef __ISynchronizeEvent_INTERFACE_DEFINED__ -#define __ISynchronizeEvent_INTERFACE_DEFINED__ - -/* interface ISynchronizeEvent */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_ISynchronizeEvent; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000032-0000-0000-C000-000000000046") - ISynchronizeEvent : public ISynchronizeHandle - { - public: - virtual HRESULT STDMETHODCALLTYPE SetEventHandle( - /* [annotation][in] */ - _In_ HANDLE *ph) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISynchronizeEventVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISynchronizeEvent * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISynchronizeEvent * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISynchronizeEvent * This); - - HRESULT ( STDMETHODCALLTYPE *GetHandle )( - ISynchronizeEvent * This, - /* [annotation][out] */ - _Out_ HANDLE *ph); - - HRESULT ( STDMETHODCALLTYPE *SetEventHandle )( - ISynchronizeEvent * This, - /* [annotation][in] */ - _In_ HANDLE *ph); - - END_INTERFACE - } ISynchronizeEventVtbl; - - interface ISynchronizeEvent - { - CONST_VTBL struct ISynchronizeEventVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISynchronizeEvent_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISynchronizeEvent_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISynchronizeEvent_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISynchronizeEvent_GetHandle(This,ph) \ - ( (This)->lpVtbl -> GetHandle(This,ph) ) - - -#define ISynchronizeEvent_SetEventHandle(This,ph) \ - ( (This)->lpVtbl -> SetEventHandle(This,ph) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISynchronizeEvent_INTERFACE_DEFINED__ */ - - -#ifndef __ISynchronizeContainer_INTERFACE_DEFINED__ -#define __ISynchronizeContainer_INTERFACE_DEFINED__ - -/* interface ISynchronizeContainer */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_ISynchronizeContainer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000033-0000-0000-C000-000000000046") - ISynchronizeContainer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE AddSynchronize( - /* [annotation][in] */ - _In_ ISynchronize *pSync) = 0; - - virtual HRESULT STDMETHODCALLTYPE WaitMultiple( - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][in] */ - _In_ DWORD dwTimeOut, - /* [annotation][out] */ - _Outptr_ ISynchronize **ppSync) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISynchronizeContainerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISynchronizeContainer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISynchronizeContainer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISynchronizeContainer * This); - - HRESULT ( STDMETHODCALLTYPE *AddSynchronize )( - ISynchronizeContainer * This, - /* [annotation][in] */ - _In_ ISynchronize *pSync); - - HRESULT ( STDMETHODCALLTYPE *WaitMultiple )( - ISynchronizeContainer * This, - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][in] */ - _In_ DWORD dwTimeOut, - /* [annotation][out] */ - _Outptr_ ISynchronize **ppSync); - - END_INTERFACE - } ISynchronizeContainerVtbl; - - interface ISynchronizeContainer - { - CONST_VTBL struct ISynchronizeContainerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISynchronizeContainer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISynchronizeContainer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISynchronizeContainer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISynchronizeContainer_AddSynchronize(This,pSync) \ - ( (This)->lpVtbl -> AddSynchronize(This,pSync) ) - -#define ISynchronizeContainer_WaitMultiple(This,dwFlags,dwTimeOut,ppSync) \ - ( (This)->lpVtbl -> WaitMultiple(This,dwFlags,dwTimeOut,ppSync) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISynchronizeContainer_INTERFACE_DEFINED__ */ - - -#ifndef __ISynchronizeMutex_INTERFACE_DEFINED__ -#define __ISynchronizeMutex_INTERFACE_DEFINED__ - -/* interface ISynchronizeMutex */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_ISynchronizeMutex; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000025-0000-0000-C000-000000000046") - ISynchronizeMutex : public ISynchronize - { - public: - virtual HRESULT STDMETHODCALLTYPE ReleaseMutex( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISynchronizeMutexVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISynchronizeMutex * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISynchronizeMutex * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISynchronizeMutex * This); - - HRESULT ( STDMETHODCALLTYPE *Wait )( - ISynchronizeMutex * This, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwMilliseconds); - - HRESULT ( STDMETHODCALLTYPE *Signal )( - ISynchronizeMutex * This); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - ISynchronizeMutex * This); - - HRESULT ( STDMETHODCALLTYPE *ReleaseMutex )( - ISynchronizeMutex * This); - - END_INTERFACE - } ISynchronizeMutexVtbl; - - interface ISynchronizeMutex - { - CONST_VTBL struct ISynchronizeMutexVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISynchronizeMutex_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISynchronizeMutex_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISynchronizeMutex_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISynchronizeMutex_Wait(This,dwFlags,dwMilliseconds) \ - ( (This)->lpVtbl -> Wait(This,dwFlags,dwMilliseconds) ) - -#define ISynchronizeMutex_Signal(This) \ - ( (This)->lpVtbl -> Signal(This) ) - -#define ISynchronizeMutex_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - - -#define ISynchronizeMutex_ReleaseMutex(This) \ - ( (This)->lpVtbl -> ReleaseMutex(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISynchronizeMutex_INTERFACE_DEFINED__ */ - - -#ifndef __ICancelMethodCalls_INTERFACE_DEFINED__ -#define __ICancelMethodCalls_INTERFACE_DEFINED__ - -/* interface ICancelMethodCalls */ -/* [uuid][object][local] */ - -typedef /* [unique] */ ICancelMethodCalls *LPCANCELMETHODCALLS; - - -EXTERN_C const IID IID_ICancelMethodCalls; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000029-0000-0000-C000-000000000046") - ICancelMethodCalls : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Cancel( - /* [annotation][in] */ - _In_ ULONG ulSeconds) = 0; - - virtual HRESULT STDMETHODCALLTYPE TestCancel( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICancelMethodCallsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICancelMethodCalls * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICancelMethodCalls * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICancelMethodCalls * This); - - HRESULT ( STDMETHODCALLTYPE *Cancel )( - ICancelMethodCalls * This, - /* [annotation][in] */ - _In_ ULONG ulSeconds); - - HRESULT ( STDMETHODCALLTYPE *TestCancel )( - ICancelMethodCalls * This); - - END_INTERFACE - } ICancelMethodCallsVtbl; - - interface ICancelMethodCalls - { - CONST_VTBL struct ICancelMethodCallsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICancelMethodCalls_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICancelMethodCalls_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICancelMethodCalls_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICancelMethodCalls_Cancel(This,ulSeconds) \ - ( (This)->lpVtbl -> Cancel(This,ulSeconds) ) - -#define ICancelMethodCalls_TestCancel(This) \ - ( (This)->lpVtbl -> TestCancel(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICancelMethodCalls_INTERFACE_DEFINED__ */ - - -#ifndef __IAsyncManager_INTERFACE_DEFINED__ -#define __IAsyncManager_INTERFACE_DEFINED__ - -/* interface IAsyncManager */ -/* [uuid][object][local] */ - -typedef -enum tagDCOM_CALL_STATE - { - DCOM_NONE = 0, - DCOM_CALL_COMPLETE = 0x1, - DCOM_CALL_CANCELED = 0x2 - } DCOM_CALL_STATE; - - -EXTERN_C const IID IID_IAsyncManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000002A-0000-0000-C000-000000000046") - IAsyncManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CompleteCall( - /* [annotation][in] */ - _In_ HRESULT Result) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCallContext( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **pInterface) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetState( - /* [annotation][out] */ - _Out_ ULONG *pulStateFlags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAsyncManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAsyncManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAsyncManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAsyncManager * This); - - HRESULT ( STDMETHODCALLTYPE *CompleteCall )( - IAsyncManager * This, - /* [annotation][in] */ - _In_ HRESULT Result); - - HRESULT ( STDMETHODCALLTYPE *GetCallContext )( - IAsyncManager * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **pInterface); - - HRESULT ( STDMETHODCALLTYPE *GetState )( - IAsyncManager * This, - /* [annotation][out] */ - _Out_ ULONG *pulStateFlags); - - END_INTERFACE - } IAsyncManagerVtbl; - - interface IAsyncManager - { - CONST_VTBL struct IAsyncManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAsyncManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAsyncManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAsyncManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAsyncManager_CompleteCall(This,Result) \ - ( (This)->lpVtbl -> CompleteCall(This,Result) ) - -#define IAsyncManager_GetCallContext(This,riid,pInterface) \ - ( (This)->lpVtbl -> GetCallContext(This,riid,pInterface) ) - -#define IAsyncManager_GetState(This,pulStateFlags) \ - ( (This)->lpVtbl -> GetState(This,pulStateFlags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAsyncManager_INTERFACE_DEFINED__ */ - - -#ifndef __ICallFactory_INTERFACE_DEFINED__ -#define __ICallFactory_INTERFACE_DEFINED__ - -/* interface ICallFactory */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_ICallFactory; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1c733a30-2a1c-11ce-ade5-00aa0044773d") - ICallFactory : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateCall( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_opt_ IUnknown *pCtrlUnk, - /* [annotation][in] */ - _In_ REFIID riid2, - /* [annotation][iid_is][out] */ - _Outptr_ IUnknown **ppv) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICallFactoryVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICallFactory * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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] */ - _Outptr_ IUnknown **ppv); - - END_INTERFACE - } ICallFactoryVtbl; - - interface ICallFactory - { - CONST_VTBL struct ICallFactoryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICallFactory_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICallFactory_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICallFactory_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICallFactory_CreateCall(This,riid,pCtrlUnk,riid2,ppv) \ - ( (This)->lpVtbl -> CreateCall(This,riid,pCtrlUnk,riid2,ppv) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICallFactory_INTERFACE_DEFINED__ */ - - -#ifndef __IRpcHelper_INTERFACE_DEFINED__ -#define __IRpcHelper_INTERFACE_DEFINED__ - -/* interface IRpcHelper */ -/* [object][local][unique][version][uuid] */ - - -EXTERN_C const IID IID_IRpcHelper; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000149-0000-0000-C000-000000000046") - IRpcHelper : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDCOMProtocolVersion( - /* [annotation][out] */ - _Out_ DWORD *pComVersion) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetIIDFromOBJREF( - /* [annotation][in] */ - _In_ void *pObjRef, - /* [annotation][out] */ - _Outptr_ IID **piid) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcHelperVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcHelper * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcHelper * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcHelper * This); - - HRESULT ( STDMETHODCALLTYPE *GetDCOMProtocolVersion )( - IRpcHelper * This, - /* [annotation][out] */ - _Out_ DWORD *pComVersion); - - HRESULT ( STDMETHODCALLTYPE *GetIIDFromOBJREF )( - IRpcHelper * This, - /* [annotation][in] */ - _In_ void *pObjRef, - /* [annotation][out] */ - _Outptr_ IID **piid); - - END_INTERFACE - } IRpcHelperVtbl; - - interface IRpcHelper - { - CONST_VTBL struct IRpcHelperVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcHelper_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcHelper_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcHelper_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcHelper_GetDCOMProtocolVersion(This,pComVersion) \ - ( (This)->lpVtbl -> GetDCOMProtocolVersion(This,pComVersion) ) - -#define IRpcHelper_GetIIDFromOBJREF(This,pObjRef,piid) \ - ( (This)->lpVtbl -> GetIIDFromOBJREF(This,pObjRef,piid) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcHelper_INTERFACE_DEFINED__ */ - - -#ifndef __IReleaseMarshalBuffers_INTERFACE_DEFINED__ -#define __IReleaseMarshalBuffers_INTERFACE_DEFINED__ - -/* interface IReleaseMarshalBuffers */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IReleaseMarshalBuffers; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("eb0cb9e8-7996-11d2-872e-0000f8080859") - IReleaseMarshalBuffers : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalBuffer( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pChnl) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IReleaseMarshalBuffersVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IReleaseMarshalBuffers * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IReleaseMarshalBuffers * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IReleaseMarshalBuffers * This); - - HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalBuffer )( - IReleaseMarshalBuffers * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pChnl); - - END_INTERFACE - } IReleaseMarshalBuffersVtbl; - - interface IReleaseMarshalBuffers - { - CONST_VTBL struct IReleaseMarshalBuffersVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IReleaseMarshalBuffers_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IReleaseMarshalBuffers_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IReleaseMarshalBuffers_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IReleaseMarshalBuffers_ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl) \ - ( (This)->lpVtbl -> ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IReleaseMarshalBuffers_INTERFACE_DEFINED__ */ - - -#ifndef __IWaitMultiple_INTERFACE_DEFINED__ -#define __IWaitMultiple_INTERFACE_DEFINED__ - -/* interface IWaitMultiple */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IWaitMultiple; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000002B-0000-0000-C000-000000000046") - IWaitMultiple : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE WaitMultiple( - /* [annotation][in] */ - _In_ DWORD timeout, - /* [annotation][out] */ - _Outptr_ ISynchronize **pSync) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddSynchronize( - /* [annotation][in] */ - _In_ ISynchronize *pSync) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IWaitMultipleVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IWaitMultiple * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IWaitMultiple * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IWaitMultiple * This); - - HRESULT ( STDMETHODCALLTYPE *WaitMultiple )( - IWaitMultiple * This, - /* [annotation][in] */ - _In_ DWORD timeout, - /* [annotation][out] */ - _Outptr_ ISynchronize **pSync); - - HRESULT ( STDMETHODCALLTYPE *AddSynchronize )( - IWaitMultiple * This, - /* [annotation][in] */ - _In_ ISynchronize *pSync); - - END_INTERFACE - } IWaitMultipleVtbl; - - interface IWaitMultiple - { - CONST_VTBL struct IWaitMultipleVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IWaitMultiple_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IWaitMultiple_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IWaitMultiple_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IWaitMultiple_WaitMultiple(This,timeout,pSync) \ - ( (This)->lpVtbl -> WaitMultiple(This,timeout,pSync) ) - -#define IWaitMultiple_AddSynchronize(This,pSync) \ - ( (This)->lpVtbl -> AddSynchronize(This,pSync) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IWaitMultiple_INTERFACE_DEFINED__ */ - - -#ifndef __IAddrTrackingControl_INTERFACE_DEFINED__ -#define __IAddrTrackingControl_INTERFACE_DEFINED__ - -/* interface IAddrTrackingControl */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IAddrTrackingControl *LPADDRTRACKINGCONTROL; - - -EXTERN_C const IID IID_IAddrTrackingControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000147-0000-0000-C000-000000000046") - IAddrTrackingControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE EnableCOMDynamicAddrTracking( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE DisableCOMDynamicAddrTracking( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAddrTrackingControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAddrTrackingControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAddrTrackingControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAddrTrackingControl * This); - - HRESULT ( STDMETHODCALLTYPE *EnableCOMDynamicAddrTracking )( - IAddrTrackingControl * This); - - HRESULT ( STDMETHODCALLTYPE *DisableCOMDynamicAddrTracking )( - IAddrTrackingControl * This); - - END_INTERFACE - } IAddrTrackingControlVtbl; - - interface IAddrTrackingControl - { - CONST_VTBL struct IAddrTrackingControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAddrTrackingControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAddrTrackingControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAddrTrackingControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAddrTrackingControl_EnableCOMDynamicAddrTracking(This) \ - ( (This)->lpVtbl -> EnableCOMDynamicAddrTracking(This) ) - -#define IAddrTrackingControl_DisableCOMDynamicAddrTracking(This) \ - ( (This)->lpVtbl -> DisableCOMDynamicAddrTracking(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAddrTrackingControl_INTERFACE_DEFINED__ */ - - -#ifndef __IAddrExclusionControl_INTERFACE_DEFINED__ -#define __IAddrExclusionControl_INTERFACE_DEFINED__ - -/* interface IAddrExclusionControl */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IAddrExclusionControl *LPADDREXCLUSIONCONTROL; - - -EXTERN_C const IID IID_IAddrExclusionControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000148-0000-0000-C000-000000000046") - IAddrExclusionControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCurrentAddrExclusionList( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppEnumerator) = 0; - - virtual HRESULT STDMETHODCALLTYPE UpdateAddrExclusionList( - /* [annotation][in] */ - _In_ IUnknown *pEnumerator) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAddrExclusionControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAddrExclusionControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAddrExclusionControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAddrExclusionControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentAddrExclusionList )( - IAddrExclusionControl * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppEnumerator); - - HRESULT ( STDMETHODCALLTYPE *UpdateAddrExclusionList )( - IAddrExclusionControl * This, - /* [annotation][in] */ - _In_ IUnknown *pEnumerator); - - END_INTERFACE - } IAddrExclusionControlVtbl; - - interface IAddrExclusionControl - { - CONST_VTBL struct IAddrExclusionControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAddrExclusionControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAddrExclusionControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAddrExclusionControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAddrExclusionControl_GetCurrentAddrExclusionList(This,riid,ppEnumerator) \ - ( (This)->lpVtbl -> GetCurrentAddrExclusionList(This,riid,ppEnumerator) ) - -#define IAddrExclusionControl_UpdateAddrExclusionList(This,pEnumerator) \ - ( (This)->lpVtbl -> UpdateAddrExclusionList(This,pEnumerator) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAddrExclusionControl_INTERFACE_DEFINED__ */ - - -#ifndef __IPipeByte_INTERFACE_DEFINED__ -#define __IPipeByte_INTERFACE_DEFINED__ - -/* interface IPipeByte */ -/* [unique][async_uuid][uuid][object] */ - - -EXTERN_C const IID IID_IPipeByte; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACA-2F86-11d1-8E04-00C04FB9989A") - IPipeByte : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Pull( - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) BYTE *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Push( - /* [size_is][in] */ __RPC__in_ecount_full(cSent) BYTE *buf, - /* [in] */ ULONG cSent) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPipeByteVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPipeByte * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPipeByte * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPipeByte * This); - - HRESULT ( STDMETHODCALLTYPE *Pull )( - __RPC__in IPipeByte * This, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) BYTE *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Push )( - __RPC__in IPipeByte * This, - /* [size_is][in] */ __RPC__in_ecount_full(cSent) BYTE *buf, - /* [in] */ ULONG cSent); - - END_INTERFACE - } IPipeByteVtbl; - - interface IPipeByte - { - CONST_VTBL struct IPipeByteVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPipeByte_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPipeByte_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPipeByte_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPipeByte_Pull(This,buf,cRequest,pcReturned) \ - ( (This)->lpVtbl -> Pull(This,buf,cRequest,pcReturned) ) - -#define IPipeByte_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Push(This,buf,cSent) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPipeByte_INTERFACE_DEFINED__ */ - - -#ifndef __AsyncIPipeByte_INTERFACE_DEFINED__ -#define __AsyncIPipeByte_INTERFACE_DEFINED__ - -/* interface AsyncIPipeByte */ -/* [uuid][unique][object] */ - - -EXTERN_C const IID IID_AsyncIPipeByte; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACB-2F86-11d1-8E04-00C04FB9989A") - AsyncIPipeByte : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Begin_Pull( - /* [in] */ ULONG cRequest) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Pull( - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) BYTE *buf, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Begin_Push( - /* [size_is][in] */ __RPC__in_xcount_full(cSent) BYTE *buf, - /* [in] */ ULONG cSent) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Push( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIPipeByteVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in AsyncIPipeByte * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in AsyncIPipeByte * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in AsyncIPipeByte * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_Pull )( - __RPC__in AsyncIPipeByte * This, - /* [in] */ ULONG cRequest); - - HRESULT ( STDMETHODCALLTYPE *Finish_Pull )( - __RPC__in AsyncIPipeByte * This, - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) BYTE *buf, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Begin_Push )( - __RPC__in AsyncIPipeByte * This, - /* [size_is][in] */ __RPC__in_xcount_full(cSent) BYTE *buf, - /* [in] */ ULONG cSent); - - HRESULT ( STDMETHODCALLTYPE *Finish_Push )( - __RPC__in AsyncIPipeByte * This); - - END_INTERFACE - } AsyncIPipeByteVtbl; - - interface AsyncIPipeByte - { - CONST_VTBL struct AsyncIPipeByteVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIPipeByte_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIPipeByte_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIPipeByte_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIPipeByte_Begin_Pull(This,cRequest) \ - ( (This)->lpVtbl -> Begin_Pull(This,cRequest) ) - -#define AsyncIPipeByte_Finish_Pull(This,buf,pcReturned) \ - ( (This)->lpVtbl -> Finish_Pull(This,buf,pcReturned) ) - -#define AsyncIPipeByte_Begin_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Begin_Push(This,buf,cSent) ) - -#define AsyncIPipeByte_Finish_Push(This) \ - ( (This)->lpVtbl -> Finish_Push(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __AsyncIPipeByte_INTERFACE_DEFINED__ */ - - -#ifndef __IPipeLong_INTERFACE_DEFINED__ -#define __IPipeLong_INTERFACE_DEFINED__ - -/* interface IPipeLong */ -/* [unique][async_uuid][uuid][object] */ - - -EXTERN_C const IID IID_IPipeLong; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACC-2F86-11d1-8E04-00C04FB9989A") - IPipeLong : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Pull( - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) LONG *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Push( - /* [size_is][in] */ __RPC__in_ecount_full(cSent) LONG *buf, - /* [in] */ ULONG cSent) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPipeLongVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPipeLong * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPipeLong * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPipeLong * This); - - HRESULT ( STDMETHODCALLTYPE *Pull )( - __RPC__in IPipeLong * This, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) LONG *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Push )( - __RPC__in IPipeLong * This, - /* [size_is][in] */ __RPC__in_ecount_full(cSent) LONG *buf, - /* [in] */ ULONG cSent); - - END_INTERFACE - } IPipeLongVtbl; - - interface IPipeLong - { - CONST_VTBL struct IPipeLongVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPipeLong_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPipeLong_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPipeLong_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPipeLong_Pull(This,buf,cRequest,pcReturned) \ - ( (This)->lpVtbl -> Pull(This,buf,cRequest,pcReturned) ) - -#define IPipeLong_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Push(This,buf,cSent) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPipeLong_INTERFACE_DEFINED__ */ - - -#ifndef __AsyncIPipeLong_INTERFACE_DEFINED__ -#define __AsyncIPipeLong_INTERFACE_DEFINED__ - -/* interface AsyncIPipeLong */ -/* [uuid][unique][object] */ - - -EXTERN_C const IID IID_AsyncIPipeLong; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACD-2F86-11d1-8E04-00C04FB9989A") - AsyncIPipeLong : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Begin_Pull( - /* [in] */ ULONG cRequest) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Pull( - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) LONG *buf, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Begin_Push( - /* [size_is][in] */ __RPC__in_xcount_full(cSent) LONG *buf, - /* [in] */ ULONG cSent) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Push( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIPipeLongVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in AsyncIPipeLong * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in AsyncIPipeLong * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in AsyncIPipeLong * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_Pull )( - __RPC__in AsyncIPipeLong * This, - /* [in] */ ULONG cRequest); - - HRESULT ( STDMETHODCALLTYPE *Finish_Pull )( - __RPC__in AsyncIPipeLong * This, - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) LONG *buf, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Begin_Push )( - __RPC__in AsyncIPipeLong * This, - /* [size_is][in] */ __RPC__in_xcount_full(cSent) LONG *buf, - /* [in] */ ULONG cSent); - - HRESULT ( STDMETHODCALLTYPE *Finish_Push )( - __RPC__in AsyncIPipeLong * This); - - END_INTERFACE - } AsyncIPipeLongVtbl; - - interface AsyncIPipeLong - { - CONST_VTBL struct AsyncIPipeLongVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIPipeLong_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIPipeLong_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIPipeLong_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIPipeLong_Begin_Pull(This,cRequest) \ - ( (This)->lpVtbl -> Begin_Pull(This,cRequest) ) - -#define AsyncIPipeLong_Finish_Pull(This,buf,pcReturned) \ - ( (This)->lpVtbl -> Finish_Pull(This,buf,pcReturned) ) - -#define AsyncIPipeLong_Begin_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Begin_Push(This,buf,cSent) ) - -#define AsyncIPipeLong_Finish_Push(This) \ - ( (This)->lpVtbl -> Finish_Push(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __AsyncIPipeLong_INTERFACE_DEFINED__ */ - - -#ifndef __IPipeDouble_INTERFACE_DEFINED__ -#define __IPipeDouble_INTERFACE_DEFINED__ - -/* interface IPipeDouble */ -/* [unique][async_uuid][uuid][object] */ - - -EXTERN_C const IID IID_IPipeDouble; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACE-2F86-11d1-8E04-00C04FB9989A") - IPipeDouble : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Pull( - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) DOUBLE *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Push( - /* [size_is][in] */ __RPC__in_ecount_full(cSent) DOUBLE *buf, - /* [in] */ ULONG cSent) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPipeDoubleVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPipeDouble * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPipeDouble * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPipeDouble * This); - - HRESULT ( STDMETHODCALLTYPE *Pull )( - __RPC__in IPipeDouble * This, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) DOUBLE *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Push )( - __RPC__in IPipeDouble * This, - /* [size_is][in] */ __RPC__in_ecount_full(cSent) DOUBLE *buf, - /* [in] */ ULONG cSent); - - END_INTERFACE - } IPipeDoubleVtbl; - - interface IPipeDouble - { - CONST_VTBL struct IPipeDoubleVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPipeDouble_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPipeDouble_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPipeDouble_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPipeDouble_Pull(This,buf,cRequest,pcReturned) \ - ( (This)->lpVtbl -> Pull(This,buf,cRequest,pcReturned) ) - -#define IPipeDouble_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Push(This,buf,cSent) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPipeDouble_INTERFACE_DEFINED__ */ - - -#ifndef __AsyncIPipeDouble_INTERFACE_DEFINED__ -#define __AsyncIPipeDouble_INTERFACE_DEFINED__ - -/* interface AsyncIPipeDouble */ -/* [uuid][unique][object] */ - - -EXTERN_C const IID IID_AsyncIPipeDouble; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACF-2F86-11d1-8E04-00C04FB9989A") - AsyncIPipeDouble : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Begin_Pull( - /* [in] */ ULONG cRequest) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Pull( - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) DOUBLE *buf, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Begin_Push( - /* [size_is][in] */ __RPC__in_xcount_full(cSent) DOUBLE *buf, - /* [in] */ ULONG cSent) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Push( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIPipeDoubleVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in AsyncIPipeDouble * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in AsyncIPipeDouble * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in AsyncIPipeDouble * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_Pull )( - __RPC__in AsyncIPipeDouble * This, - /* [in] */ ULONG cRequest); - - HRESULT ( STDMETHODCALLTYPE *Finish_Pull )( - __RPC__in AsyncIPipeDouble * This, - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) DOUBLE *buf, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Begin_Push )( - __RPC__in AsyncIPipeDouble * This, - /* [size_is][in] */ __RPC__in_xcount_full(cSent) DOUBLE *buf, - /* [in] */ ULONG cSent); - - HRESULT ( STDMETHODCALLTYPE *Finish_Push )( - __RPC__in AsyncIPipeDouble * This); - - END_INTERFACE - } AsyncIPipeDoubleVtbl; - - interface AsyncIPipeDouble - { - CONST_VTBL struct AsyncIPipeDoubleVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIPipeDouble_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIPipeDouble_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIPipeDouble_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIPipeDouble_Begin_Pull(This,cRequest) \ - ( (This)->lpVtbl -> Begin_Pull(This,cRequest) ) - -#define AsyncIPipeDouble_Finish_Pull(This,buf,pcReturned) \ - ( (This)->lpVtbl -> Finish_Pull(This,buf,pcReturned) ) - -#define AsyncIPipeDouble_Begin_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Begin_Push(This,buf,cSent) ) - -#define AsyncIPipeDouble_Finish_Push(This) \ - ( (This)->lpVtbl -> Finish_Push(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __AsyncIPipeDouble_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0045 */ -/* [local] */ - -#if defined USE_COM_CONTEXT_DEF || defined BUILDTYPE_COMSVCS || defined _COMBASEAPI_ || defined _OLE32_ -typedef DWORD CPFLAGS; - -typedef struct tagContextProperty - { - GUID policyId; - CPFLAGS flags; - /* [unique] */ IUnknown *pUnk; - } ContextProperty; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0045_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0045_v0_0_s_ifspec; - -#ifndef __IEnumContextProps_INTERFACE_DEFINED__ -#define __IEnumContextProps_INTERFACE_DEFINED__ - -/* interface IEnumContextProps */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IEnumContextProps *LPENUMCONTEXTPROPS; - - -EXTERN_C const IID IID_IEnumContextProps; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001c1-0000-0000-C000-000000000046") - IEnumContextProps : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Next( - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) ContextProperty *pContextProperties, - /* [annotation][out] */ - _Out_ ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [annotation][in] */ - _In_ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [annotation][out] */ - _Outptr_ IEnumContextProps **ppEnumContextProps) = 0; - - virtual HRESULT STDMETHODCALLTYPE Count( - /* [annotation][out] */ - _Out_ ULONG *pcelt) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumContextPropsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IEnumContextProps * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IEnumContextProps * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IEnumContextProps * This); - - HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumContextProps * This, - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) ContextProperty *pContextProperties, - /* [annotation][out] */ - _Out_ ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - IEnumContextProps * This, - /* [annotation][in] */ - _In_ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - IEnumContextProps * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - IEnumContextProps * This, - /* [annotation][out] */ - _Outptr_ IEnumContextProps **ppEnumContextProps); - - HRESULT ( STDMETHODCALLTYPE *Count )( - IEnumContextProps * This, - /* [annotation][out] */ - _Out_ ULONG *pcelt); - - END_INTERFACE - } IEnumContextPropsVtbl; - - interface IEnumContextProps - { - CONST_VTBL struct IEnumContextPropsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumContextProps_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumContextProps_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumContextProps_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumContextProps_Next(This,celt,pContextProperties,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,pContextProperties,pceltFetched) ) - -#define IEnumContextProps_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumContextProps_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumContextProps_Clone(This,ppEnumContextProps) \ - ( (This)->lpVtbl -> Clone(This,ppEnumContextProps) ) - -#define IEnumContextProps_Count(This,pcelt) \ - ( (This)->lpVtbl -> Count(This,pcelt) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IEnumContextProps_INTERFACE_DEFINED__ */ - - -#ifndef __IContext_INTERFACE_DEFINED__ -#define __IContext_INTERFACE_DEFINED__ - -/* interface IContext */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IContext; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001c0-0000-0000-C000-000000000046") - IContext : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetProperty( - /* [annotation][in] */ - _In_ REFGUID rpolicyId, - /* [annotation][in] */ - _In_ CPFLAGS flags, - /* [annotation][in] */ - _In_ IUnknown *pUnk) = 0; - - virtual HRESULT STDMETHODCALLTYPE RemoveProperty( - /* [annotation][in] */ - _In_ REFGUID rPolicyId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetProperty( - /* [annotation][in] */ - _In_ REFGUID rGuid, - /* [annotation][out] */ - _Out_ CPFLAGS *pFlags, - /* [annotation][out] */ - _Outptr_ IUnknown **ppUnk) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumContextProps( - /* [annotation][out] */ - _Outptr_ IEnumContextProps **ppEnumContextProps) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IContextVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IContext * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IContext * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IContext * This); - - HRESULT ( STDMETHODCALLTYPE *SetProperty )( - IContext * This, - /* [annotation][in] */ - _In_ REFGUID rpolicyId, - /* [annotation][in] */ - _In_ CPFLAGS flags, - /* [annotation][in] */ - _In_ IUnknown *pUnk); - - HRESULT ( STDMETHODCALLTYPE *RemoveProperty )( - IContext * This, - /* [annotation][in] */ - _In_ REFGUID rPolicyId); - - HRESULT ( STDMETHODCALLTYPE *GetProperty )( - IContext * This, - /* [annotation][in] */ - _In_ REFGUID rGuid, - /* [annotation][out] */ - _Out_ CPFLAGS *pFlags, - /* [annotation][out] */ - _Outptr_ IUnknown **ppUnk); - - HRESULT ( STDMETHODCALLTYPE *EnumContextProps )( - IContext * This, - /* [annotation][out] */ - _Outptr_ IEnumContextProps **ppEnumContextProps); - - END_INTERFACE - } IContextVtbl; - - interface IContext - { - CONST_VTBL struct IContextVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IContext_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IContext_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IContext_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IContext_SetProperty(This,rpolicyId,flags,pUnk) \ - ( (This)->lpVtbl -> SetProperty(This,rpolicyId,flags,pUnk) ) - -#define IContext_RemoveProperty(This,rPolicyId) \ - ( (This)->lpVtbl -> RemoveProperty(This,rPolicyId) ) - -#define IContext_GetProperty(This,rGuid,pFlags,ppUnk) \ - ( (This)->lpVtbl -> GetProperty(This,rGuid,pFlags,ppUnk) ) - -#define IContext_EnumContextProps(This,ppEnumContextProps) \ - ( (This)->lpVtbl -> EnumContextProps(This,ppEnumContextProps) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IContext_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0047 */ -/* [local] */ - -#if !defined BUILDTYPE_COMSVCS && ! (defined _COMBASEAPI_ || defined _OLE32_) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0047_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0047_v0_0_s_ifspec; - -#ifndef __IObjContext_INTERFACE_DEFINED__ -#define __IObjContext_INTERFACE_DEFINED__ - -/* interface IObjContext */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IObjContext; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001c6-0000-0000-C000-000000000046") - IObjContext : public IContext - { - public: - virtual void STDMETHODCALLTYPE Reserved1( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved2( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved3( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved4( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved5( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved6( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved7( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IObjContextVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IObjContext * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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] */ - _Outptr_ IUnknown **ppUnk); - - HRESULT ( STDMETHODCALLTYPE *EnumContextProps )( - IObjContext * This, - /* [annotation][out] */ - _Outptr_ IEnumContextProps **ppEnumContextProps); - - void ( STDMETHODCALLTYPE *Reserved1 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved2 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved3 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved4 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved5 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved6 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved7 )( - IObjContext * This); - - END_INTERFACE - } IObjContextVtbl; - - interface IObjContext - { - CONST_VTBL struct IObjContextVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IObjContext_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IObjContext_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IObjContext_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IObjContext_SetProperty(This,rpolicyId,flags,pUnk) \ - ( (This)->lpVtbl -> SetProperty(This,rpolicyId,flags,pUnk) ) - -#define IObjContext_RemoveProperty(This,rPolicyId) \ - ( (This)->lpVtbl -> RemoveProperty(This,rPolicyId) ) - -#define IObjContext_GetProperty(This,rGuid,pFlags,ppUnk) \ - ( (This)->lpVtbl -> GetProperty(This,rGuid,pFlags,ppUnk) ) - -#define IObjContext_EnumContextProps(This,ppEnumContextProps) \ - ( (This)->lpVtbl -> EnumContextProps(This,ppEnumContextProps) ) - - -#define IObjContext_Reserved1(This) \ - ( (This)->lpVtbl -> Reserved1(This) ) - -#define IObjContext_Reserved2(This) \ - ( (This)->lpVtbl -> Reserved2(This) ) - -#define IObjContext_Reserved3(This) \ - ( (This)->lpVtbl -> Reserved3(This) ) - -#define IObjContext_Reserved4(This) \ - ( (This)->lpVtbl -> Reserved4(This) ) - -#define IObjContext_Reserved5(This) \ - ( (This)->lpVtbl -> Reserved5(This) ) - -#define IObjContext_Reserved6(This) \ - ( (This)->lpVtbl -> Reserved6(This) ) - -#define IObjContext_Reserved7(This) \ - ( (This)->lpVtbl -> Reserved7(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IObjContext_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0048 */ -/* [local] */ - -#endif -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -typedef -enum _APTTYPEQUALIFIER - { - APTTYPEQUALIFIER_NONE = 0, - APTTYPEQUALIFIER_IMPLICIT_MTA = 1, - APTTYPEQUALIFIER_NA_ON_MTA = 2, - APTTYPEQUALIFIER_NA_ON_STA = 3, - APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4, - APTTYPEQUALIFIER_NA_ON_MAINSTA = 5, - APTTYPEQUALIFIER_APPLICATION_STA = 6, - APTTYPEQUALIFIER_RESERVED_1 = 7 - } APTTYPEQUALIFIER; - -typedef -enum _APTTYPE - { - APTTYPE_CURRENT = -1, - APTTYPE_STA = 0, - APTTYPE_MTA = 1, - APTTYPE_NA = 2, - APTTYPE_MAINSTA = 3 - } APTTYPE; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -typedef -enum _THDTYPE - { - THDTYPE_BLOCKMESSAGES = 0, - THDTYPE_PROCESSMESSAGES = 1 - } THDTYPE; - -typedef DWORD APARTMENTID; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0048_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0048_v0_0_s_ifspec; - -#ifndef __IComThreadingInfo_INTERFACE_DEFINED__ -#define __IComThreadingInfo_INTERFACE_DEFINED__ - -/* interface IComThreadingInfo */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IComThreadingInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001ce-0000-0000-C000-000000000046") - IComThreadingInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCurrentApartmentType( - /* [annotation][out] */ - _Out_ APTTYPE *pAptType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadType( - /* [annotation][out] */ - _Out_ THDTYPE *pThreadType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentLogicalThreadId( - /* [annotation][out] */ - _Out_ GUID *pguidLogicalThreadId) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetCurrentLogicalThreadId( - /* [annotation][in] */ - _In_ REFGUID rguid) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IComThreadingInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IComThreadingInfo * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IComThreadingInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IComThreadingInfo * This); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentApartmentType )( - IComThreadingInfo * This, - /* [annotation][out] */ - _Out_ APTTYPE *pAptType); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadType )( - IComThreadingInfo * This, - /* [annotation][out] */ - _Out_ THDTYPE *pThreadType); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentLogicalThreadId )( - IComThreadingInfo * This, - /* [annotation][out] */ - _Out_ GUID *pguidLogicalThreadId); - - HRESULT ( STDMETHODCALLTYPE *SetCurrentLogicalThreadId )( - IComThreadingInfo * This, - /* [annotation][in] */ - _In_ REFGUID rguid); - - END_INTERFACE - } IComThreadingInfoVtbl; - - interface IComThreadingInfo - { - CONST_VTBL struct IComThreadingInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IComThreadingInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IComThreadingInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IComThreadingInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IComThreadingInfo_GetCurrentApartmentType(This,pAptType) \ - ( (This)->lpVtbl -> GetCurrentApartmentType(This,pAptType) ) - -#define IComThreadingInfo_GetCurrentThreadType(This,pThreadType) \ - ( (This)->lpVtbl -> GetCurrentThreadType(This,pThreadType) ) - -#define IComThreadingInfo_GetCurrentLogicalThreadId(This,pguidLogicalThreadId) \ - ( (This)->lpVtbl -> GetCurrentLogicalThreadId(This,pguidLogicalThreadId) ) - -#define IComThreadingInfo_SetCurrentLogicalThreadId(This,rguid) \ - ( (This)->lpVtbl -> SetCurrentLogicalThreadId(This,rguid) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IComThreadingInfo_INTERFACE_DEFINED__ */ - - -#ifndef __IProcessInitControl_INTERFACE_DEFINED__ -#define __IProcessInitControl_INTERFACE_DEFINED__ - -/* interface IProcessInitControl */ -/* [uuid][unique][object] */ - - -EXTERN_C const IID IID_IProcessInitControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("72380d55-8d2b-43a3-8513-2b6ef31434e9") - IProcessInitControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ResetInitializerTimeout( - /* [in] */ DWORD dwSecondsRemaining) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IProcessInitControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IProcessInitControl * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IProcessInitControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IProcessInitControl * This); - - HRESULT ( STDMETHODCALLTYPE *ResetInitializerTimeout )( - __RPC__in IProcessInitControl * This, - /* [in] */ DWORD dwSecondsRemaining); - - END_INTERFACE - } IProcessInitControlVtbl; - - interface IProcessInitControl - { - CONST_VTBL struct IProcessInitControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IProcessInitControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IProcessInitControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IProcessInitControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IProcessInitControl_ResetInitializerTimeout(This,dwSecondsRemaining) \ - ( (This)->lpVtbl -> ResetInitializerTimeout(This,dwSecondsRemaining) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IProcessInitControl_INTERFACE_DEFINED__ */ - - -#ifndef __IFastRundown_INTERFACE_DEFINED__ -#define __IFastRundown_INTERFACE_DEFINED__ - -/* interface IFastRundown */ -/* [uuid][unique][local][object] */ - - -EXTERN_C const IID IID_IFastRundown; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000040-0000-0000-C000-000000000046") - IFastRundown : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct IFastRundownVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IFastRundown * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IFastRundown * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IFastRundown * This); - - END_INTERFACE - } IFastRundownVtbl; - - interface IFastRundown - { - CONST_VTBL struct IFastRundownVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IFastRundown_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IFastRundown_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IFastRundown_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IFastRundown_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0051 */ -/* [local] */ - -typedef -enum CO_MARSHALING_CONTEXT_ATTRIBUTES - { - CO_MARSHALING_SOURCE_IS_APP_CONTAINER = 0, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_1 = 0x80000000, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_2 = 0x80000001, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_3 = 0x80000002, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_4 = 0x80000003, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_5 = 0x80000004, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_6 = 0x80000005, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_7 = 0x80000006, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_8 = 0x80000007, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_9 = 0x80000008, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_10 = 0x80000009, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_11 = 0x8000000a, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_12 = 0x8000000b, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_13 = 0x8000000c, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_14 = 0x8000000d, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_15 = 0x8000000e, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_16 = 0x8000000f, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_17 = 0x80000010 - } CO_MARSHALING_CONTEXT_ATTRIBUTES; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0051_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0051_v0_0_s_ifspec; - -#ifndef __IMarshalingStream_INTERFACE_DEFINED__ -#define __IMarshalingStream_INTERFACE_DEFINED__ - -/* interface IMarshalingStream */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IMarshalingStream; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D8F2F5E6-6102-4863-9F26-389A4676EFDE") - IMarshalingStream : public IStream - { - public: - virtual HRESULT STDMETHODCALLTYPE GetMarshalingContextAttribute( - /* [in] */ CO_MARSHALING_CONTEXT_ATTRIBUTES attribute, - /* [out] */ ULONG_PTR *pAttributeValue) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMarshalingStreamVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMarshalingStream * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMarshalingStream * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMarshalingStream * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )( - IMarshalingStream * This, - /* [annotation] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbRead); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )( - IMarshalingStream * This, - /* [annotation] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbWritten); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Seek )( - IMarshalingStream * This, - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *plibNewPosition); - - HRESULT ( STDMETHODCALLTYPE *SetSize )( - IMarshalingStream * This, - /* [in] */ ULARGE_INTEGER libNewSize); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *CopyTo )( - IMarshalingStream * This, - /* [annotation][unique][in] */ - _In_ IStream *pstm, - /* [in] */ ULARGE_INTEGER cb, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbRead, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbWritten); - - HRESULT ( STDMETHODCALLTYPE *Commit )( - IMarshalingStream * This, - /* [in] */ DWORD grfCommitFlags); - - HRESULT ( STDMETHODCALLTYPE *Revert )( - IMarshalingStream * This); - - HRESULT ( STDMETHODCALLTYPE *LockRegion )( - IMarshalingStream * This, - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType); - - HRESULT ( STDMETHODCALLTYPE *UnlockRegion )( - IMarshalingStream * This, - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType); - - HRESULT ( STDMETHODCALLTYPE *Stat )( - IMarshalingStream * This, - /* [out] */ STATSTG *pstatstg, - /* [in] */ DWORD grfStatFlag); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - IMarshalingStream * This, - /* [out] */ IStream **ppstm); - - HRESULT ( STDMETHODCALLTYPE *GetMarshalingContextAttribute )( - IMarshalingStream * This, - /* [in] */ CO_MARSHALING_CONTEXT_ATTRIBUTES attribute, - /* [out] */ ULONG_PTR *pAttributeValue); - - END_INTERFACE - } IMarshalingStreamVtbl; - - interface IMarshalingStream - { - CONST_VTBL struct IMarshalingStreamVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMarshalingStream_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMarshalingStream_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMarshalingStream_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMarshalingStream_Read(This,pv,cb,pcbRead) \ - ( (This)->lpVtbl -> Read(This,pv,cb,pcbRead) ) - -#define IMarshalingStream_Write(This,pv,cb,pcbWritten) \ - ( (This)->lpVtbl -> Write(This,pv,cb,pcbWritten) ) - - -#define IMarshalingStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) \ - ( (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition) ) - -#define IMarshalingStream_SetSize(This,libNewSize) \ - ( (This)->lpVtbl -> SetSize(This,libNewSize) ) - -#define IMarshalingStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) \ - ( (This)->lpVtbl -> CopyTo(This,pstm,cb,pcbRead,pcbWritten) ) - -#define IMarshalingStream_Commit(This,grfCommitFlags) \ - ( (This)->lpVtbl -> Commit(This,grfCommitFlags) ) - -#define IMarshalingStream_Revert(This) \ - ( (This)->lpVtbl -> Revert(This) ) - -#define IMarshalingStream_LockRegion(This,libOffset,cb,dwLockType) \ - ( (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType) ) - -#define IMarshalingStream_UnlockRegion(This,libOffset,cb,dwLockType) \ - ( (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType) ) - -#define IMarshalingStream_Stat(This,pstatstg,grfStatFlag) \ - ( (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag) ) - -#define IMarshalingStream_Clone(This,ppstm) \ - ( (This)->lpVtbl -> Clone(This,ppstm) ) - - -#define IMarshalingStream_GetMarshalingContextAttribute(This,attribute,pAttributeValue) \ - ( (This)->lpVtbl -> GetMarshalingContextAttribute(This,attribute,pAttributeValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMarshalingStream_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0052 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0052_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0052_v0_0_s_ifspec; - -#ifndef __IAgileReference_INTERFACE_DEFINED__ -#define __IAgileReference_INTERFACE_DEFINED__ - -/* interface IAgileReference */ -/* [unique][uuid][object][local] */ - -#if defined(__cplusplus) && !defined(CINTERFACE) - EXTERN_C const IID IID_IAgileReference; - extern "C++" - { - MIDL_INTERFACE("C03F6A43-65A4-9818-987E-E0B810D2A6F2") - IAgileReference : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Resolve( - /* [in] */ REFIID riid, - /* [iid_is][retval][out] */ void **ppvObjectReference) = 0; - - template - HRESULT -#ifdef _M_CEE_PURE - __clrcall -#else - STDMETHODCALLTYPE -#endif - Resolve(_COM_Outptr_ Q** pp) - { - return Resolve(__uuidof(Q), (void **)pp); - } - - }; - } // extern C++ -#else - -EXTERN_C const IID IID_IAgileReference; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C03F6A43-65A4-9818-987E-E0B810D2A6F2") - IAgileReference : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Resolve( - /* [in] */ REFIID riid, - /* [iid_is][retval][out] */ void **ppvObjectReference) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAgileReferenceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAgileReference * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAgileReference * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAgileReference * This); - - HRESULT ( STDMETHODCALLTYPE *Resolve )( - IAgileReference * This, - /* [in] */ REFIID riid, - /* [iid_is][retval][out] */ void **ppvObjectReference); - - END_INTERFACE - } IAgileReferenceVtbl; - - interface IAgileReference - { - CONST_VTBL struct IAgileReferenceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAgileReference_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAgileReference_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAgileReference_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAgileReference_Resolve(This,riid,ppvObjectReference) \ - ( (This)->lpVtbl -> Resolve(This,riid,ppvObjectReference) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAgileReference_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0053 */ -/* [local] */ - -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -EXTERN_C const GUID IID_ICallbackWithNoReentrancyToApplicationSTA; -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#define _OBJIDLBASE_ -#endif -#if ( _MSC_VER >= 800 ) -#if _MSC_VER >= 1200 -#pragma warning(pop) -#else -#pragma warning(default:4201) -#endif -#endif - - - - - - - - - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0053_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0053_v0_0_s_ifspec; - -#ifndef __IMallocSpy_INTERFACE_DEFINED__ -#define __IMallocSpy_INTERFACE_DEFINED__ - -/* interface IMallocSpy */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IMallocSpy *LPMALLOCSPY; - - -EXTERN_C const IID IID_IMallocSpy; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000001d-0000-0000-C000-000000000046") - IMallocSpy : public IUnknown - { - public: - virtual SIZE_T STDMETHODCALLTYPE PreAlloc( - /* [annotation][in] */ - _In_ SIZE_T cbRequest) = 0; - - virtual void *STDMETHODCALLTYPE PostAlloc( - /* [annotation][in] */ - _In_ void *pActual) = 0; - - virtual void *STDMETHODCALLTYPE PreFree( - /* [annotation][in] */ - _In_ void *pRequest, - /* [annotation][in] */ - _In_ BOOL fSpyed) = 0; - - virtual void STDMETHODCALLTYPE PostFree( - /* [annotation][in] */ - _In_ BOOL fSpyed) = 0; - - virtual SIZE_T STDMETHODCALLTYPE PreRealloc( - /* [annotation][in] */ - _In_ void *pRequest, - /* [annotation][in] */ - _In_ SIZE_T cbRequest, - /* [annotation][out] */ - _Outptr_ void **ppNewRequest, - /* [annotation][in] */ - _In_ BOOL fSpyed) = 0; - - virtual void *STDMETHODCALLTYPE PostRealloc( - /* [annotation][in] */ - _In_ void *pActual, - /* [annotation][in] */ - _In_ BOOL fSpyed) = 0; - - virtual void *STDMETHODCALLTYPE PreGetSize( - /* [annotation][in] */ - _In_ void *pRequest, - /* [annotation][in] */ - _In_ BOOL fSpyed) = 0; - - virtual SIZE_T STDMETHODCALLTYPE PostGetSize( - /* [annotation][in] */ - _In_ SIZE_T cbActual, - /* [annotation][in] */ - _In_ BOOL fSpyed) = 0; - - virtual void *STDMETHODCALLTYPE PreDidAlloc( - /* [annotation][in] */ - _In_ void *pRequest, - /* [annotation][in] */ - _In_ BOOL fSpyed) = 0; - - virtual int STDMETHODCALLTYPE PostDidAlloc( - /* [annotation][in] */ - _In_ void *pRequest, - /* [annotation][in] */ - _In_ BOOL fSpyed, - /* [annotation][in] */ - _In_ int fActual) = 0; - - virtual void STDMETHODCALLTYPE PreHeapMinimize( void) = 0; - - virtual void STDMETHODCALLTYPE PostHeapMinimize( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMallocSpyVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMallocSpy * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMallocSpy * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMallocSpy * This); - - SIZE_T ( STDMETHODCALLTYPE *PreAlloc )( - IMallocSpy * This, - /* [annotation][in] */ - _In_ SIZE_T cbRequest); - - void *( STDMETHODCALLTYPE *PostAlloc )( - IMallocSpy * This, - /* [annotation][in] */ - _In_ void *pActual); - - void *( STDMETHODCALLTYPE *PreFree )( - IMallocSpy * This, - /* [annotation][in] */ - _In_ void *pRequest, - /* [annotation][in] */ - _In_ BOOL fSpyed); - - void ( STDMETHODCALLTYPE *PostFree )( - IMallocSpy * This, - /* [annotation][in] */ - _In_ BOOL fSpyed); - - SIZE_T ( STDMETHODCALLTYPE *PreRealloc )( - IMallocSpy * This, - /* [annotation][in] */ - _In_ void *pRequest, - /* [annotation][in] */ - _In_ SIZE_T cbRequest, - /* [annotation][out] */ - _Outptr_ void **ppNewRequest, - /* [annotation][in] */ - _In_ BOOL fSpyed); - - void *( STDMETHODCALLTYPE *PostRealloc )( - IMallocSpy * This, - /* [annotation][in] */ - _In_ void *pActual, - /* [annotation][in] */ - _In_ BOOL fSpyed); - - void *( STDMETHODCALLTYPE *PreGetSize )( - IMallocSpy * This, - /* [annotation][in] */ - _In_ void *pRequest, - /* [annotation][in] */ - _In_ BOOL fSpyed); - - SIZE_T ( STDMETHODCALLTYPE *PostGetSize )( - IMallocSpy * This, - /* [annotation][in] */ - _In_ SIZE_T cbActual, - /* [annotation][in] */ - _In_ BOOL fSpyed); - - void *( STDMETHODCALLTYPE *PreDidAlloc )( - IMallocSpy * This, - /* [annotation][in] */ - _In_ void *pRequest, - /* [annotation][in] */ - _In_ BOOL fSpyed); - - int ( STDMETHODCALLTYPE *PostDidAlloc )( - IMallocSpy * This, - /* [annotation][in] */ - _In_ void *pRequest, - /* [annotation][in] */ - _In_ BOOL fSpyed, - /* [annotation][in] */ - _In_ int fActual); - - void ( STDMETHODCALLTYPE *PreHeapMinimize )( - IMallocSpy * This); - - void ( STDMETHODCALLTYPE *PostHeapMinimize )( - IMallocSpy * This); - - END_INTERFACE - } IMallocSpyVtbl; - - interface IMallocSpy - { - CONST_VTBL struct IMallocSpyVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMallocSpy_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMallocSpy_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMallocSpy_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMallocSpy_PreAlloc(This,cbRequest) \ - ( (This)->lpVtbl -> PreAlloc(This,cbRequest) ) - -#define IMallocSpy_PostAlloc(This,pActual) \ - ( (This)->lpVtbl -> PostAlloc(This,pActual) ) - -#define IMallocSpy_PreFree(This,pRequest,fSpyed) \ - ( (This)->lpVtbl -> PreFree(This,pRequest,fSpyed) ) - -#define IMallocSpy_PostFree(This,fSpyed) \ - ( (This)->lpVtbl -> PostFree(This,fSpyed) ) - -#define IMallocSpy_PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed) \ - ( (This)->lpVtbl -> PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed) ) - -#define IMallocSpy_PostRealloc(This,pActual,fSpyed) \ - ( (This)->lpVtbl -> PostRealloc(This,pActual,fSpyed) ) - -#define IMallocSpy_PreGetSize(This,pRequest,fSpyed) \ - ( (This)->lpVtbl -> PreGetSize(This,pRequest,fSpyed) ) - -#define IMallocSpy_PostGetSize(This,cbActual,fSpyed) \ - ( (This)->lpVtbl -> PostGetSize(This,cbActual,fSpyed) ) - -#define IMallocSpy_PreDidAlloc(This,pRequest,fSpyed) \ - ( (This)->lpVtbl -> PreDidAlloc(This,pRequest,fSpyed) ) - -#define IMallocSpy_PostDidAlloc(This,pRequest,fSpyed,fActual) \ - ( (This)->lpVtbl -> PostDidAlloc(This,pRequest,fSpyed,fActual) ) - -#define IMallocSpy_PreHeapMinimize(This) \ - ( (This)->lpVtbl -> PreHeapMinimize(This) ) - -#define IMallocSpy_PostHeapMinimize(This) \ - ( (This)->lpVtbl -> PostHeapMinimize(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMallocSpy_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0054 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0054_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0054_v0_0_s_ifspec; - -#ifndef __IBindCtx_INTERFACE_DEFINED__ -#define __IBindCtx_INTERFACE_DEFINED__ - -/* interface IBindCtx */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IBindCtx *LPBC; - -typedef /* [unique] */ __RPC_unique_pointer IBindCtx *LPBINDCTX; - -#if defined(__cplusplus) - typedef _Struct_size_bytes_(cbStruct) struct tagBIND_OPTS { - DWORD cbStruct; - DWORD grfFlags; - DWORD grfMode; - DWORD dwTickCountDeadline; - } BIND_OPTS, * LPBIND_OPTS; -#else -typedef struct tagBIND_OPTS - { - DWORD cbStruct; - DWORD grfFlags; - DWORD grfMode; - DWORD dwTickCountDeadline; - } BIND_OPTS; - -typedef struct tagBIND_OPTS *LPBIND_OPTS; - -#endif -#if defined(__cplusplus) - typedef struct tagBIND_OPTS2 : tagBIND_OPTS { - DWORD dwTrackFlags; - DWORD dwClassContext; - LCID locale; - COSERVERINFO * pServerInfo; - } BIND_OPTS2, * LPBIND_OPTS2; -#else - -typedef struct tagBIND_OPTS2 - { - DWORD cbStruct; - DWORD grfFlags; - DWORD grfMode; - DWORD dwTickCountDeadline; - DWORD dwTrackFlags; - DWORD dwClassContext; - LCID locale; - COSERVERINFO *pServerInfo; - } BIND_OPTS2; - -typedef struct tagBIND_OPTS2 *LPBIND_OPTS2; - -#endif -#if defined(__cplusplus) - typedef struct tagBIND_OPTS3 : tagBIND_OPTS2 { - HWND hwnd; - } BIND_OPTS3, * LPBIND_OPTS3; -#else -typedef struct tagBIND_OPTS3 - { - DWORD cbStruct; - DWORD grfFlags; - DWORD grfMode; - DWORD dwTickCountDeadline; - DWORD dwTrackFlags; - DWORD dwClassContext; - LCID locale; - COSERVERINFO *pServerInfo; - HWND hwnd; - } BIND_OPTS3; - -typedef struct tagBIND_OPTS3 *LPBIND_OPTS3; - -#endif -typedef -enum tagBIND_FLAGS - { - BIND_MAYBOTHERUSER = 1, - BIND_JUSTTESTEXISTENCE = 2 - } BIND_FLAGS; - - -EXTERN_C const IID IID_IBindCtx; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000000e-0000-0000-C000-000000000046") - IBindCtx : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE RegisterObjectBound( - /* [unique][in] */ __RPC__in_opt IUnknown *punk) = 0; - - virtual HRESULT STDMETHODCALLTYPE RevokeObjectBound( - /* [unique][in] */ __RPC__in_opt IUnknown *punk) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReleaseBoundObjects( void) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetBindOptions( - /* [annotation][in] */ - _In_ BIND_OPTS *pbindopts) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetBindOptions( - /* [annotation][out][in] */ - _Inout_ BIND_OPTS *pbindopts) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRunningObjectTable( - /* [out] */ __RPC__deref_out_opt IRunningObjectTable **pprot) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterObjectParam( - /* [in] */ __RPC__in LPOLESTR pszKey, - /* [unique][in] */ __RPC__in_opt IUnknown *punk) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObjectParam( - /* [in] */ __RPC__in LPOLESTR pszKey, - /* [out] */ __RPC__deref_out_opt IUnknown **ppunk) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumObjectParam( - /* [out] */ __RPC__deref_out_opt IEnumString **ppenum) = 0; - - virtual HRESULT STDMETHODCALLTYPE RevokeObjectParam( - /* [in] */ __RPC__in LPOLESTR pszKey) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IBindCtxVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IBindCtx * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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, - /* [annotation][in] */ - _In_ BIND_OPTS *pbindopts); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBindOptions )( - IBindCtx * This, - /* [annotation][out][in] */ - _Inout_ 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; - - interface IBindCtx - { - CONST_VTBL struct IBindCtxVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IBindCtx_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IBindCtx_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IBindCtx_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IBindCtx_RegisterObjectBound(This,punk) \ - ( (This)->lpVtbl -> RegisterObjectBound(This,punk) ) - -#define IBindCtx_RevokeObjectBound(This,punk) \ - ( (This)->lpVtbl -> RevokeObjectBound(This,punk) ) - -#define IBindCtx_ReleaseBoundObjects(This) \ - ( (This)->lpVtbl -> ReleaseBoundObjects(This) ) - -#define IBindCtx_SetBindOptions(This,pbindopts) \ - ( (This)->lpVtbl -> SetBindOptions(This,pbindopts) ) - -#define IBindCtx_GetBindOptions(This,pbindopts) \ - ( (This)->lpVtbl -> GetBindOptions(This,pbindopts) ) - -#define IBindCtx_GetRunningObjectTable(This,pprot) \ - ( (This)->lpVtbl -> GetRunningObjectTable(This,pprot) ) - -#define IBindCtx_RegisterObjectParam(This,pszKey,punk) \ - ( (This)->lpVtbl -> RegisterObjectParam(This,pszKey,punk) ) - -#define IBindCtx_GetObjectParam(This,pszKey,ppunk) \ - ( (This)->lpVtbl -> GetObjectParam(This,pszKey,ppunk) ) - -#define IBindCtx_EnumObjectParam(This,ppenum) \ - ( (This)->lpVtbl -> EnumObjectParam(This,ppenum) ) - -#define IBindCtx_RevokeObjectParam(This,pszKey) \ - ( (This)->lpVtbl -> RevokeObjectParam(This,pszKey) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindCtx_RemoteSetBindOptions_Proxy( - __RPC__in IBindCtx * This, - /* [in] */ __RPC__in BIND_OPTS2 *pbindopts); - - -void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindCtx_RemoteGetBindOptions_Proxy( - __RPC__in IBindCtx * This, - /* [out][in] */ __RPC__inout BIND_OPTS2 *pbindopts); - - -void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IBindCtx_INTERFACE_DEFINED__ */ - - -#ifndef __IEnumMoniker_INTERFACE_DEFINED__ -#define __IEnumMoniker_INTERFACE_DEFINED__ - -/* interface IEnumMoniker */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumMoniker *LPENUMMONIKER; - - -EXTERN_C const IID IID_IEnumMoniker; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000102-0000-0000-C000-000000000046") - IEnumMoniker : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) IMoniker **rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumMoniker **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumMonikerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumMoniker * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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_writes_to_(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; - - interface IEnumMoniker - { - CONST_VTBL struct IEnumMonikerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumMoniker_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumMoniker_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumMoniker_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumMoniker_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumMoniker_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumMoniker_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumMoniker_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumMoniker_RemoteNext_Proxy( - __RPC__in IEnumMoniker * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IMoniker **rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumMoniker_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumMoniker_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0056 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0056_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0056_v0_0_s_ifspec; - -#ifndef __IRunnableObject_INTERFACE_DEFINED__ -#define __IRunnableObject_INTERFACE_DEFINED__ - -/* interface IRunnableObject */ -/* [uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IRunnableObject *LPRUNNABLEOBJECT; - - -EXTERN_C const IID IID_IRunnableObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000126-0000-0000-C000-000000000046") - IRunnableObject : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetRunningClass( - /* [out] */ __RPC__out LPCLSID lpClsid) = 0; - - virtual HRESULT STDMETHODCALLTYPE Run( - /* [in] */ __RPC__in_opt LPBINDCTX pbc) = 0; - - virtual /* [local] */ BOOL STDMETHODCALLTYPE IsRunning( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE LockRunning( - /* [in] */ BOOL fLock, - /* [in] */ BOOL fLastUnlockCloses) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetContainedObject( - /* [in] */ BOOL fContained) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRunnableObjectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IRunnableObject * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IRunnableObject * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IRunnableObject * This); - - HRESULT ( STDMETHODCALLTYPE *GetRunningClass )( - __RPC__in IRunnableObject * This, - /* [out] */ __RPC__out LPCLSID lpClsid); - - HRESULT ( STDMETHODCALLTYPE *Run )( - __RPC__in IRunnableObject * This, - /* [in] */ __RPC__in_opt LPBINDCTX pbc); - - /* [local] */ BOOL ( STDMETHODCALLTYPE *IsRunning )( - IRunnableObject * This); - - HRESULT ( STDMETHODCALLTYPE *LockRunning )( - __RPC__in IRunnableObject * This, - /* [in] */ BOOL fLock, - /* [in] */ BOOL fLastUnlockCloses); - - HRESULT ( STDMETHODCALLTYPE *SetContainedObject )( - __RPC__in IRunnableObject * This, - /* [in] */ BOOL fContained); - - END_INTERFACE - } IRunnableObjectVtbl; - - interface IRunnableObject - { - CONST_VTBL struct IRunnableObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRunnableObject_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRunnableObject_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRunnableObject_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRunnableObject_GetRunningClass(This,lpClsid) \ - ( (This)->lpVtbl -> GetRunningClass(This,lpClsid) ) - -#define IRunnableObject_Run(This,pbc) \ - ( (This)->lpVtbl -> Run(This,pbc) ) - -#define IRunnableObject_IsRunning(This) \ - ( (This)->lpVtbl -> IsRunning(This) ) - -#define IRunnableObject_LockRunning(This,fLock,fLastUnlockCloses) \ - ( (This)->lpVtbl -> LockRunning(This,fLock,fLastUnlockCloses) ) - -#define IRunnableObject_SetContainedObject(This,fContained) \ - ( (This)->lpVtbl -> SetContainedObject(This,fContained) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IRunnableObject_RemoteIsRunning_Proxy( - __RPC__in IRunnableObject * This); - - -void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IRunnableObject_INTERFACE_DEFINED__ */ - - -#ifndef __IRunningObjectTable_INTERFACE_DEFINED__ -#define __IRunningObjectTable_INTERFACE_DEFINED__ - -/* interface IRunningObjectTable */ -/* [uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IRunningObjectTable *LPRUNNINGOBJECTTABLE; - - -EXTERN_C const IID IID_IRunningObjectTable; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000010-0000-0000-C000-000000000046") - IRunningObjectTable : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Register( - /* [in] */ DWORD grfFlags, - /* [unique][in] */ __RPC__in_opt IUnknown *punkObject, - /* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName, - /* [out] */ __RPC__out DWORD *pdwRegister) = 0; - - virtual HRESULT STDMETHODCALLTYPE Revoke( - /* [in] */ DWORD dwRegister) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsRunning( - /* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( - /* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName, - /* [out] */ __RPC__deref_out_opt IUnknown **ppunkObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE NoteChangeTime( - /* [in] */ DWORD dwRegister, - /* [in] */ __RPC__in FILETIME *pfiletime) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange( - /* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName, - /* [out] */ __RPC__out FILETIME *pfiletime) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumRunning( - /* [out] */ __RPC__deref_out_opt IEnumMoniker **ppenumMoniker) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRunningObjectTableVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IRunningObjectTable * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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; - - interface IRunningObjectTable - { - CONST_VTBL struct IRunningObjectTableVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRunningObjectTable_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRunningObjectTable_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRunningObjectTable_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRunningObjectTable_Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister) \ - ( (This)->lpVtbl -> Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister) ) - -#define IRunningObjectTable_Revoke(This,dwRegister) \ - ( (This)->lpVtbl -> Revoke(This,dwRegister) ) - -#define IRunningObjectTable_IsRunning(This,pmkObjectName) \ - ( (This)->lpVtbl -> IsRunning(This,pmkObjectName) ) - -#define IRunningObjectTable_GetObject(This,pmkObjectName,ppunkObject) \ - ( (This)->lpVtbl -> GetObject(This,pmkObjectName,ppunkObject) ) - -#define IRunningObjectTable_NoteChangeTime(This,dwRegister,pfiletime) \ - ( (This)->lpVtbl -> NoteChangeTime(This,dwRegister,pfiletime) ) - -#define IRunningObjectTable_GetTimeOfLastChange(This,pmkObjectName,pfiletime) \ - ( (This)->lpVtbl -> GetTimeOfLastChange(This,pmkObjectName,pfiletime) ) - -#define IRunningObjectTable_EnumRunning(This,ppenumMoniker) \ - ( (This)->lpVtbl -> EnumRunning(This,ppenumMoniker) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRunningObjectTable_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0058 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0058_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0058_v0_0_s_ifspec; - -#ifndef __IPersist_INTERFACE_DEFINED__ -#define __IPersist_INTERFACE_DEFINED__ - -/* interface IPersist */ -/* [uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IPersist *LPPERSIST; - - -EXTERN_C const IID IID_IPersist; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000010c-0000-0000-C000-000000000046") - IPersist : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetClassID( - /* [out] */ __RPC__out CLSID *pClassID) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPersistVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPersist * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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; - - interface IPersist - { - CONST_VTBL struct IPersistVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPersist_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPersist_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPersist_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPersist_GetClassID(This,pClassID) \ - ( (This)->lpVtbl -> GetClassID(This,pClassID) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPersist_INTERFACE_DEFINED__ */ - - -#ifndef __IPersistStream_INTERFACE_DEFINED__ -#define __IPersistStream_INTERFACE_DEFINED__ - -/* interface IPersistStream */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IPersistStream *LPPERSISTSTREAM; - - -EXTERN_C const IID IID_IPersistStream; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000109-0000-0000-C000-000000000046") - IPersistStream : public IPersist - { - public: - virtual HRESULT STDMETHODCALLTYPE IsDirty( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Load( - /* [unique][in] */ __RPC__in_opt IStream *pStm) = 0; - - virtual HRESULT STDMETHODCALLTYPE Save( - /* [unique][in] */ __RPC__in_opt IStream *pStm, - /* [in] */ BOOL fClearDirty) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSizeMax( - /* [out] */ __RPC__out ULARGE_INTEGER *pcbSize) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPersistStreamVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPersistStream * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPersistStream * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPersistStream * This); - - HRESULT ( STDMETHODCALLTYPE *GetClassID )( - __RPC__in IPersistStream * This, - /* [out] */ __RPC__out CLSID *pClassID); - - HRESULT ( STDMETHODCALLTYPE *IsDirty )( - __RPC__in IPersistStream * This); - - HRESULT ( STDMETHODCALLTYPE *Load )( - __RPC__in IPersistStream * This, - /* [unique][in] */ __RPC__in_opt IStream *pStm); - - HRESULT ( STDMETHODCALLTYPE *Save )( - __RPC__in IPersistStream * This, - /* [unique][in] */ __RPC__in_opt IStream *pStm, - /* [in] */ BOOL fClearDirty); - - HRESULT ( STDMETHODCALLTYPE *GetSizeMax )( - __RPC__in IPersistStream * This, - /* [out] */ __RPC__out ULARGE_INTEGER *pcbSize); - - END_INTERFACE - } IPersistStreamVtbl; - - interface IPersistStream - { - CONST_VTBL struct IPersistStreamVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPersistStream_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPersistStream_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPersistStream_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPersistStream_GetClassID(This,pClassID) \ - ( (This)->lpVtbl -> GetClassID(This,pClassID) ) - - -#define IPersistStream_IsDirty(This) \ - ( (This)->lpVtbl -> IsDirty(This) ) - -#define IPersistStream_Load(This,pStm) \ - ( (This)->lpVtbl -> Load(This,pStm) ) - -#define IPersistStream_Save(This,pStm,fClearDirty) \ - ( (This)->lpVtbl -> Save(This,pStm,fClearDirty) ) - -#define IPersistStream_GetSizeMax(This,pcbSize) \ - ( (This)->lpVtbl -> GetSizeMax(This,pcbSize) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPersistStream_INTERFACE_DEFINED__ */ - - -#ifndef __IMoniker_INTERFACE_DEFINED__ -#define __IMoniker_INTERFACE_DEFINED__ - -/* interface IMoniker */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IMoniker *LPMONIKER; - -typedef -enum tagMKSYS - { - MKSYS_NONE = 0, - MKSYS_GENERICCOMPOSITE = 1, - MKSYS_FILEMONIKER = 2, - MKSYS_ANTIMONIKER = 3, - MKSYS_ITEMMONIKER = 4, - MKSYS_POINTERMONIKER = 5, - MKSYS_CLASSMONIKER = 7, - MKSYS_OBJREFMONIKER = 8, - MKSYS_SESSIONMONIKER = 9, - MKSYS_LUAMONIKER = 10 - } MKSYS; - -typedef /* [v1_enum] */ -enum tagMKREDUCE - { - MKRREDUCE_ONE = ( 3 << 16 ) , - MKRREDUCE_TOUSER = ( 2 << 16 ) , - MKRREDUCE_THROUGHUSER = ( 1 << 16 ) , - MKRREDUCE_ALL = 0 - } MKRREDUCE; - - -EXTERN_C const IID IID_IMoniker; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000000f-0000-0000-C000-000000000046") - IMoniker : public IPersistStream - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE BindToObject( - /* [annotation][unique][in] */ - _In_ IBindCtx *pbc, - /* [annotation][unique][in] */ - _In_opt_ IMoniker *pmkToLeft, - /* [annotation][in] */ - _In_ REFIID riidResult, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppvResult) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE BindToStorage( - /* [annotation][unique][in] */ - _In_ IBindCtx *pbc, - /* [annotation][unique][in] */ - _In_opt_ IMoniker *pmkToLeft, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppvObj) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reduce( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE ComposeWith( - /* [unique][in] */ __RPC__in_opt IMoniker *pmkRight, - /* [in] */ BOOL fOnlyIfNotGeneric, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmkComposite) = 0; - - virtual HRESULT STDMETHODCALLTYPE Enum( - /* [in] */ BOOL fForward, - /* [out] */ __RPC__deref_out_opt IEnumMoniker **ppenumMoniker) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsEqual( - /* [unique][in] */ __RPC__in_opt IMoniker *pmkOtherMoniker) = 0; - - virtual HRESULT STDMETHODCALLTYPE Hash( - /* [out] */ __RPC__out DWORD *pdwHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsRunning( - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft, - /* [unique][in] */ __RPC__in_opt IMoniker *pmkNewlyRunning) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange( - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft, - /* [out] */ __RPC__out FILETIME *pFileTime) = 0; - - virtual HRESULT STDMETHODCALLTYPE Inverse( - /* [out] */ __RPC__deref_out_opt IMoniker **ppmk) = 0; - - virtual HRESULT STDMETHODCALLTYPE CommonPrefixWith( - /* [unique][in] */ __RPC__in_opt IMoniker *pmkOther, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmkPrefix) = 0; - - virtual HRESULT STDMETHODCALLTYPE RelativePathTo( - /* [unique][in] */ __RPC__in_opt IMoniker *pmkOther, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmkRelPath) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDisplayName( - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft, - /* [out] */ __RPC__deref_out_opt LPOLESTR *ppszDisplayName) = 0; - - virtual HRESULT STDMETHODCALLTYPE ParseDisplayName( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsSystemMoniker( - /* [out] */ __RPC__out DWORD *pdwMksys) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMonikerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IMoniker * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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, - /* [annotation][unique][in] */ - _In_ IBindCtx *pbc, - /* [annotation][unique][in] */ - _In_opt_ IMoniker *pmkToLeft, - /* [annotation][in] */ - _In_ REFIID riidResult, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppvResult); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *BindToStorage )( - IMoniker * This, - /* [annotation][unique][in] */ - _In_ IBindCtx *pbc, - /* [annotation][unique][in] */ - _In_opt_ IMoniker *pmkToLeft, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _Outptr_ 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; - - interface IMoniker - { - CONST_VTBL struct IMonikerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMoniker_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMoniker_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMoniker_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMoniker_GetClassID(This,pClassID) \ - ( (This)->lpVtbl -> GetClassID(This,pClassID) ) - - -#define IMoniker_IsDirty(This) \ - ( (This)->lpVtbl -> IsDirty(This) ) - -#define IMoniker_Load(This,pStm) \ - ( (This)->lpVtbl -> Load(This,pStm) ) - -#define IMoniker_Save(This,pStm,fClearDirty) \ - ( (This)->lpVtbl -> Save(This,pStm,fClearDirty) ) - -#define IMoniker_GetSizeMax(This,pcbSize) \ - ( (This)->lpVtbl -> GetSizeMax(This,pcbSize) ) - - -#define IMoniker_BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult) \ - ( (This)->lpVtbl -> BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult) ) - -#define IMoniker_BindToStorage(This,pbc,pmkToLeft,riid,ppvObj) \ - ( (This)->lpVtbl -> BindToStorage(This,pbc,pmkToLeft,riid,ppvObj) ) - -#define IMoniker_Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced) \ - ( (This)->lpVtbl -> Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced) ) - -#define IMoniker_ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite) \ - ( (This)->lpVtbl -> ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite) ) - -#define IMoniker_Enum(This,fForward,ppenumMoniker) \ - ( (This)->lpVtbl -> Enum(This,fForward,ppenumMoniker) ) - -#define IMoniker_IsEqual(This,pmkOtherMoniker) \ - ( (This)->lpVtbl -> IsEqual(This,pmkOtherMoniker) ) - -#define IMoniker_Hash(This,pdwHash) \ - ( (This)->lpVtbl -> Hash(This,pdwHash) ) - -#define IMoniker_IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning) \ - ( (This)->lpVtbl -> IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning) ) - -#define IMoniker_GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime) \ - ( (This)->lpVtbl -> GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime) ) - -#define IMoniker_Inverse(This,ppmk) \ - ( (This)->lpVtbl -> Inverse(This,ppmk) ) - -#define IMoniker_CommonPrefixWith(This,pmkOther,ppmkPrefix) \ - ( (This)->lpVtbl -> CommonPrefixWith(This,pmkOther,ppmkPrefix) ) - -#define IMoniker_RelativePathTo(This,pmkOther,ppmkRelPath) \ - ( (This)->lpVtbl -> RelativePathTo(This,pmkOther,ppmkRelPath) ) - -#define IMoniker_GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName) \ - ( (This)->lpVtbl -> GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName) ) - -#define IMoniker_ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut) \ - ( (This)->lpVtbl -> ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut) ) - -#define IMoniker_IsSystemMoniker(This,pdwMksys) \ - ( (This)->lpVtbl -> IsSystemMoniker(This,pdwMksys) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToObject_Proxy( - __RPC__in IMoniker * This, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft, - /* [in] */ __RPC__in REFIID riidResult, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvResult); - - -void __RPC_STUB IMoniker_RemoteBindToObject_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToStorage_Proxy( - __RPC__in IMoniker * This, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObj); - - -void __RPC_STUB IMoniker_RemoteBindToStorage_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMoniker_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0061 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0061_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0061_v0_0_s_ifspec; - -#ifndef __IROTData_INTERFACE_DEFINED__ -#define __IROTData_INTERFACE_DEFINED__ - -/* interface IROTData */ -/* [unique][uuid][object] */ - - -EXTERN_C const IID IID_IROTData; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("f29f6bc0-5021-11ce-aa15-00006901293f") - IROTData : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetComparisonData( - /* [size_is][out] */ __RPC__out_ecount_full(cbMax) byte *pbData, - /* [in] */ ULONG cbMax, - /* [out] */ __RPC__out ULONG *pcbData) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IROTDataVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IROTData * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IROTData * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IROTData * This); - - HRESULT ( STDMETHODCALLTYPE *GetComparisonData )( - __RPC__in IROTData * This, - /* [size_is][out] */ __RPC__out_ecount_full(cbMax) byte *pbData, - /* [in] */ ULONG cbMax, - /* [out] */ __RPC__out ULONG *pcbData); - - END_INTERFACE - } IROTDataVtbl; - - interface IROTData - { - CONST_VTBL struct IROTDataVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IROTData_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IROTData_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IROTData_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IROTData_GetComparisonData(This,pbData,cbMax,pcbData) \ - ( (This)->lpVtbl -> GetComparisonData(This,pbData,cbMax,pcbData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IROTData_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0062 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0062_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0062_v0_0_s_ifspec; - -#ifndef __IEnumSTATSTG_INTERFACE_DEFINED__ -#define __IEnumSTATSTG_INTERFACE_DEFINED__ - -/* interface IEnumSTATSTG */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumSTATSTG *LPENUMSTATSTG; - - -EXTERN_C const IID IID_IEnumSTATSTG; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000000d-0000-0000-C000-000000000046") - IEnumSTATSTG : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) STATSTG *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumSTATSTG **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumSTATSTGVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumSTATSTG * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnumSTATSTG * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnumSTATSTG * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumSTATSTG * This, - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) STATSTG *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - __RPC__in IEnumSTATSTG * This, - /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in IEnumSTATSTG * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - __RPC__in IEnumSTATSTG * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATSTG **ppenum); - - END_INTERFACE - } IEnumSTATSTGVtbl; - - interface IEnumSTATSTG - { - CONST_VTBL struct IEnumSTATSTGVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumSTATSTG_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumSTATSTG_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumSTATSTG_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumSTATSTG_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumSTATSTG_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumSTATSTG_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumSTATSTG_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATSTG_RemoteNext_Proxy( - __RPC__in IEnumSTATSTG * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATSTG *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumSTATSTG_INTERFACE_DEFINED__ */ - - -#ifndef __IStorage_INTERFACE_DEFINED__ -#define __IStorage_INTERFACE_DEFINED__ - -/* interface IStorage */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IStorage *LPSTORAGE; - -typedef struct tagRemSNB - { - ULONG ulCntStr; - ULONG ulCntChar; - /* [size_is] */ OLECHAR rgString[ 1 ]; - } RemSNB; - -typedef /* [unique] */ __RPC_unique_pointer RemSNB *wireSNB; - - -typedef /* [annotation][wire_marshal] */ _Null_terminated_ LPOLESTR *SNB; - - - -EXTERN_C const IID IID_IStorage; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000000b-0000-0000-C000-000000000046") - IStorage : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateStream( - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsName, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD reserved1, - /* [in] */ DWORD reserved2, - /* [out] */ __RPC__deref_out_opt IStream **ppstm) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE OpenStream( - /* [annotation][string][in] */ - _In_z_ const OLECHAR *pwcsName, - /* [annotation][unique][in] */ - _Reserved_ void *reserved1, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD reserved2, - /* [annotation][out] */ - _Outptr_ IStream **ppstm) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateStorage( - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsName, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD reserved1, - /* [in] */ DWORD reserved2, - /* [out] */ __RPC__deref_out_opt IStorage **ppstg) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenStorage( - /* [string][unique][in] */ __RPC__in_opt_string const OLECHAR *pwcsName, - /* [unique][in] */ __RPC__in_opt IStorage *pstgPriority, - /* [in] */ DWORD grfMode, - /* [unique][in] */ __RPC__deref_opt_in_opt SNB snbExclude, - /* [in] */ DWORD reserved, - /* [out] */ __RPC__deref_out_opt IStorage **ppstg) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE CopyTo( - /* [in] */ DWORD ciidExclude, - /* [annotation][size_is][unique][in] */ - _In_reads_opt_(ciidExclude) const IID *rgiidExclude, - /* [annotation][unique][in] */ - _In_opt_ SNB snbExclude, - /* [annotation][unique][in] */ - _In_ IStorage *pstgDest) = 0; - - virtual HRESULT STDMETHODCALLTYPE MoveElementTo( - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsName, - /* [unique][in] */ __RPC__in_opt IStorage *pstgDest, - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsNewName, - /* [in] */ DWORD grfFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE Commit( - /* [in] */ DWORD grfCommitFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE Revert( void) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE EnumElements( - /* [annotation][in] */ - _Reserved_ DWORD reserved1, - /* [annotation][size_is][unique][in] */ - _Reserved_ void *reserved2, - /* [annotation][in] */ - _Reserved_ DWORD reserved3, - /* [annotation][out] */ - _Outptr_ IEnumSTATSTG **ppenum) = 0; - - virtual HRESULT STDMETHODCALLTYPE DestroyElement( - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsName) = 0; - - virtual HRESULT STDMETHODCALLTYPE RenameElement( - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsOldName, - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsNewName) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetElementTimes( - /* [string][unique][in] */ __RPC__in_opt_string const OLECHAR *pwcsName, - /* [unique][in] */ __RPC__in_opt const FILETIME *pctime, - /* [unique][in] */ __RPC__in_opt const FILETIME *patime, - /* [unique][in] */ __RPC__in_opt const FILETIME *pmtime) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetClass( - /* [in] */ __RPC__in REFCLSID clsid) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetStateBits( - /* [in] */ DWORD grfStateBits, - /* [in] */ DWORD grfMask) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stat( - /* [out] */ __RPC__out STATSTG *pstatstg, - /* [in] */ DWORD grfStatFlag) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IStorageVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IStorage * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IStorage * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IStorage * This); - - HRESULT ( STDMETHODCALLTYPE *CreateStream )( - __RPC__in IStorage * This, - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsName, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD reserved1, - /* [in] */ DWORD reserved2, - /* [out] */ __RPC__deref_out_opt IStream **ppstm); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *OpenStream )( - IStorage * This, - /* [annotation][string][in] */ - _In_z_ const OLECHAR *pwcsName, - /* [annotation][unique][in] */ - _Reserved_ void *reserved1, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD reserved2, - /* [annotation][out] */ - _Outptr_ IStream **ppstm); - - HRESULT ( STDMETHODCALLTYPE *CreateStorage )( - __RPC__in IStorage * This, - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsName, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD reserved1, - /* [in] */ DWORD reserved2, - /* [out] */ __RPC__deref_out_opt IStorage **ppstg); - - HRESULT ( STDMETHODCALLTYPE *OpenStorage )( - __RPC__in IStorage * This, - /* [string][unique][in] */ __RPC__in_opt_string const OLECHAR *pwcsName, - /* [unique][in] */ __RPC__in_opt IStorage *pstgPriority, - /* [in] */ DWORD grfMode, - /* [unique][in] */ __RPC__deref_opt_in_opt SNB snbExclude, - /* [in] */ DWORD reserved, - /* [out] */ __RPC__deref_out_opt IStorage **ppstg); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *CopyTo )( - IStorage * This, - /* [in] */ DWORD ciidExclude, - /* [annotation][size_is][unique][in] */ - _In_reads_opt_(ciidExclude) const IID *rgiidExclude, - /* [annotation][unique][in] */ - _In_opt_ SNB snbExclude, - /* [annotation][unique][in] */ - _In_ IStorage *pstgDest); - - HRESULT ( STDMETHODCALLTYPE *MoveElementTo )( - __RPC__in IStorage * This, - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsName, - /* [unique][in] */ __RPC__in_opt IStorage *pstgDest, - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsNewName, - /* [in] */ DWORD grfFlags); - - HRESULT ( STDMETHODCALLTYPE *Commit )( - __RPC__in IStorage * This, - /* [in] */ DWORD grfCommitFlags); - - HRESULT ( STDMETHODCALLTYPE *Revert )( - __RPC__in IStorage * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *EnumElements )( - IStorage * This, - /* [annotation][in] */ - _Reserved_ DWORD reserved1, - /* [annotation][size_is][unique][in] */ - _Reserved_ void *reserved2, - /* [annotation][in] */ - _Reserved_ DWORD reserved3, - /* [annotation][out] */ - _Outptr_ IEnumSTATSTG **ppenum); - - HRESULT ( STDMETHODCALLTYPE *DestroyElement )( - __RPC__in IStorage * This, - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsName); - - HRESULT ( STDMETHODCALLTYPE *RenameElement )( - __RPC__in IStorage * This, - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsOldName, - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsNewName); - - HRESULT ( STDMETHODCALLTYPE *SetElementTimes )( - __RPC__in IStorage * This, - /* [string][unique][in] */ __RPC__in_opt_string const OLECHAR *pwcsName, - /* [unique][in] */ __RPC__in_opt const FILETIME *pctime, - /* [unique][in] */ __RPC__in_opt const FILETIME *patime, - /* [unique][in] */ __RPC__in_opt const FILETIME *pmtime); - - HRESULT ( STDMETHODCALLTYPE *SetClass )( - __RPC__in IStorage * This, - /* [in] */ __RPC__in REFCLSID clsid); - - HRESULT ( STDMETHODCALLTYPE *SetStateBits )( - __RPC__in IStorage * This, - /* [in] */ DWORD grfStateBits, - /* [in] */ DWORD grfMask); - - HRESULT ( STDMETHODCALLTYPE *Stat )( - __RPC__in IStorage * This, - /* [out] */ __RPC__out STATSTG *pstatstg, - /* [in] */ DWORD grfStatFlag); - - END_INTERFACE - } IStorageVtbl; - - interface IStorage - { - CONST_VTBL struct IStorageVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IStorage_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IStorage_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IStorage_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IStorage_CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm) \ - ( (This)->lpVtbl -> CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm) ) - -#define IStorage_OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm) \ - ( (This)->lpVtbl -> OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm) ) - -#define IStorage_CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg) \ - ( (This)->lpVtbl -> CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg) ) - -#define IStorage_OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg) \ - ( (This)->lpVtbl -> OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg) ) - -#define IStorage_CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest) \ - ( (This)->lpVtbl -> CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest) ) - -#define IStorage_MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags) \ - ( (This)->lpVtbl -> MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags) ) - -#define IStorage_Commit(This,grfCommitFlags) \ - ( (This)->lpVtbl -> Commit(This,grfCommitFlags) ) - -#define IStorage_Revert(This) \ - ( (This)->lpVtbl -> Revert(This) ) - -#define IStorage_EnumElements(This,reserved1,reserved2,reserved3,ppenum) \ - ( (This)->lpVtbl -> EnumElements(This,reserved1,reserved2,reserved3,ppenum) ) - -#define IStorage_DestroyElement(This,pwcsName) \ - ( (This)->lpVtbl -> DestroyElement(This,pwcsName) ) - -#define IStorage_RenameElement(This,pwcsOldName,pwcsNewName) \ - ( (This)->lpVtbl -> RenameElement(This,pwcsOldName,pwcsNewName) ) - -#define IStorage_SetElementTimes(This,pwcsName,pctime,patime,pmtime) \ - ( (This)->lpVtbl -> SetElementTimes(This,pwcsName,pctime,patime,pmtime) ) - -#define IStorage_SetClass(This,clsid) \ - ( (This)->lpVtbl -> SetClass(This,clsid) ) - -#define IStorage_SetStateBits(This,grfStateBits,grfMask) \ - ( (This)->lpVtbl -> SetStateBits(This,grfStateBits,grfMask) ) - -#define IStorage_Stat(This,pstatstg,grfStatFlag) \ - ( (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStorage_RemoteOpenStream_Proxy( - __RPC__in IStorage * This, - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsName, - /* [in] */ ULONG cbReserved1, - /* [size_is][unique][in] */ __RPC__in_ecount_full_opt(cbReserved1) byte *reserved1, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD reserved2, - /* [out] */ __RPC__deref_out_opt IStream **ppstm); - - -void __RPC_STUB IStorage_RemoteOpenStream_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStorage_RemoteCopyTo_Proxy( - __RPC__in IStorage * This, - /* [in] */ DWORD ciidExclude, - /* [size_is][unique][in] */ __RPC__in_ecount_full_opt(ciidExclude) const IID *rgiidExclude, - /* [unique][in] */ __RPC__deref_opt_in_opt SNB snbExclude, - /* [unique][in] */ __RPC__in_opt IStorage *pstgDest); - - -void __RPC_STUB IStorage_RemoteCopyTo_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStorage_RemoteEnumElements_Proxy( - __RPC__in IStorage * This, - /* [in] */ DWORD reserved1, - /* [in] */ ULONG cbReserved2, - /* [size_is][unique][in] */ __RPC__in_ecount_full_opt(cbReserved2) byte *reserved2, - /* [in] */ DWORD reserved3, - /* [out] */ __RPC__deref_out_opt IEnumSTATSTG **ppenum); - - -void __RPC_STUB IStorage_RemoteEnumElements_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IStorage_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0064 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0064_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0064_v0_0_s_ifspec; - -#ifndef __IPersistFile_INTERFACE_DEFINED__ -#define __IPersistFile_INTERFACE_DEFINED__ - -/* interface IPersistFile */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IPersistFile *LPPERSISTFILE; - - -EXTERN_C const IID IID_IPersistFile; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000010b-0000-0000-C000-000000000046") - IPersistFile : public IPersist - { - public: - virtual HRESULT STDMETHODCALLTYPE IsDirty( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Load( - /* [in] */ __RPC__in LPCOLESTR pszFileName, - /* [in] */ DWORD dwMode) = 0; - - virtual HRESULT STDMETHODCALLTYPE Save( - /* [unique][in] */ __RPC__in_opt LPCOLESTR pszFileName, - /* [in] */ BOOL fRemember) = 0; - - virtual HRESULT STDMETHODCALLTYPE SaveCompleted( - /* [unique][in] */ __RPC__in_opt LPCOLESTR pszFileName) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurFile( - /* [out] */ __RPC__deref_out_opt LPOLESTR *ppszFileName) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPersistFileVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPersistFile * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPersistFile * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPersistFile * This); - - HRESULT ( STDMETHODCALLTYPE *GetClassID )( - __RPC__in IPersistFile * This, - /* [out] */ __RPC__out CLSID *pClassID); - - HRESULT ( STDMETHODCALLTYPE *IsDirty )( - __RPC__in IPersistFile * This); - - HRESULT ( STDMETHODCALLTYPE *Load )( - __RPC__in IPersistFile * This, - /* [in] */ __RPC__in LPCOLESTR pszFileName, - /* [in] */ DWORD dwMode); - - HRESULT ( STDMETHODCALLTYPE *Save )( - __RPC__in IPersistFile * This, - /* [unique][in] */ __RPC__in_opt LPCOLESTR pszFileName, - /* [in] */ BOOL fRemember); - - HRESULT ( STDMETHODCALLTYPE *SaveCompleted )( - __RPC__in IPersistFile * This, - /* [unique][in] */ __RPC__in_opt LPCOLESTR pszFileName); - - HRESULT ( STDMETHODCALLTYPE *GetCurFile )( - __RPC__in IPersistFile * This, - /* [out] */ __RPC__deref_out_opt LPOLESTR *ppszFileName); - - END_INTERFACE - } IPersistFileVtbl; - - interface IPersistFile - { - CONST_VTBL struct IPersistFileVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPersistFile_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPersistFile_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPersistFile_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPersistFile_GetClassID(This,pClassID) \ - ( (This)->lpVtbl -> GetClassID(This,pClassID) ) - - -#define IPersistFile_IsDirty(This) \ - ( (This)->lpVtbl -> IsDirty(This) ) - -#define IPersistFile_Load(This,pszFileName,dwMode) \ - ( (This)->lpVtbl -> Load(This,pszFileName,dwMode) ) - -#define IPersistFile_Save(This,pszFileName,fRemember) \ - ( (This)->lpVtbl -> Save(This,pszFileName,fRemember) ) - -#define IPersistFile_SaveCompleted(This,pszFileName) \ - ( (This)->lpVtbl -> SaveCompleted(This,pszFileName) ) - -#define IPersistFile_GetCurFile(This,ppszFileName) \ - ( (This)->lpVtbl -> GetCurFile(This,ppszFileName) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPersistFile_INTERFACE_DEFINED__ */ - - -#ifndef __IPersistStorage_INTERFACE_DEFINED__ -#define __IPersistStorage_INTERFACE_DEFINED__ - -/* interface IPersistStorage */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IPersistStorage *LPPERSISTSTORAGE; - - -EXTERN_C const IID IID_IPersistStorage; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000010a-0000-0000-C000-000000000046") - IPersistStorage : public IPersist - { - public: - virtual HRESULT STDMETHODCALLTYPE IsDirty( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE InitNew( - /* [unique][in] */ __RPC__in_opt IStorage *pStg) = 0; - - virtual HRESULT STDMETHODCALLTYPE Load( - /* [unique][in] */ __RPC__in_opt IStorage *pStg) = 0; - - virtual HRESULT STDMETHODCALLTYPE Save( - /* [unique][in] */ __RPC__in_opt IStorage *pStgSave, - /* [in] */ BOOL fSameAsLoad) = 0; - - virtual HRESULT STDMETHODCALLTYPE SaveCompleted( - /* [unique][in] */ __RPC__in_opt IStorage *pStgNew) = 0; - - virtual HRESULT STDMETHODCALLTYPE HandsOffStorage( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPersistStorageVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPersistStorage * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPersistStorage * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPersistStorage * This); - - HRESULT ( STDMETHODCALLTYPE *GetClassID )( - __RPC__in IPersistStorage * This, - /* [out] */ __RPC__out CLSID *pClassID); - - HRESULT ( STDMETHODCALLTYPE *IsDirty )( - __RPC__in IPersistStorage * This); - - HRESULT ( STDMETHODCALLTYPE *InitNew )( - __RPC__in IPersistStorage * This, - /* [unique][in] */ __RPC__in_opt IStorage *pStg); - - HRESULT ( STDMETHODCALLTYPE *Load )( - __RPC__in IPersistStorage * This, - /* [unique][in] */ __RPC__in_opt IStorage *pStg); - - HRESULT ( STDMETHODCALLTYPE *Save )( - __RPC__in IPersistStorage * This, - /* [unique][in] */ __RPC__in_opt IStorage *pStgSave, - /* [in] */ BOOL fSameAsLoad); - - HRESULT ( STDMETHODCALLTYPE *SaveCompleted )( - __RPC__in IPersistStorage * This, - /* [unique][in] */ __RPC__in_opt IStorage *pStgNew); - - HRESULT ( STDMETHODCALLTYPE *HandsOffStorage )( - __RPC__in IPersistStorage * This); - - END_INTERFACE - } IPersistStorageVtbl; - - interface IPersistStorage - { - CONST_VTBL struct IPersistStorageVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPersistStorage_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPersistStorage_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPersistStorage_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPersistStorage_GetClassID(This,pClassID) \ - ( (This)->lpVtbl -> GetClassID(This,pClassID) ) - - -#define IPersistStorage_IsDirty(This) \ - ( (This)->lpVtbl -> IsDirty(This) ) - -#define IPersistStorage_InitNew(This,pStg) \ - ( (This)->lpVtbl -> InitNew(This,pStg) ) - -#define IPersistStorage_Load(This,pStg) \ - ( (This)->lpVtbl -> Load(This,pStg) ) - -#define IPersistStorage_Save(This,pStgSave,fSameAsLoad) \ - ( (This)->lpVtbl -> Save(This,pStgSave,fSameAsLoad) ) - -#define IPersistStorage_SaveCompleted(This,pStgNew) \ - ( (This)->lpVtbl -> SaveCompleted(This,pStgNew) ) - -#define IPersistStorage_HandsOffStorage(This) \ - ( (This)->lpVtbl -> HandsOffStorage(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPersistStorage_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0066 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0066_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0066_v0_0_s_ifspec; - -#ifndef __ILockBytes_INTERFACE_DEFINED__ -#define __ILockBytes_INTERFACE_DEFINED__ - -/* interface ILockBytes */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer ILockBytes *LPLOCKBYTES; - - -EXTERN_C const IID IID_ILockBytes; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000000a-0000-0000-C000-000000000046") - ILockBytes : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE ReadAt( - /* [in] */ ULARGE_INTEGER ulOffset, - /* [annotation][length_is][size_is][out] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [in] */ ULONG cb, - /* [annotation][out] */ - _Out_opt_ ULONG *pcbRead) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE WriteAt( - /* [in] */ ULARGE_INTEGER ulOffset, - /* [annotation][size_is][in] */ - _In_reads_bytes_(cb) const void *pv, - /* [in] */ ULONG cb, - /* [annotation][out] */ - _Out_opt_ ULONG *pcbWritten) = 0; - - virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetSize( - /* [in] */ ULARGE_INTEGER cb) = 0; - - virtual HRESULT STDMETHODCALLTYPE LockRegion( - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnlockRegion( - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stat( - /* [out] */ __RPC__out STATSTG *pstatstg, - /* [in] */ DWORD grfStatFlag) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ILockBytesVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ILockBytes * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ILockBytes * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ILockBytes * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *ReadAt )( - ILockBytes * This, - /* [in] */ ULARGE_INTEGER ulOffset, - /* [annotation][length_is][size_is][out] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [in] */ ULONG cb, - /* [annotation][out] */ - _Out_opt_ ULONG *pcbRead); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *WriteAt )( - ILockBytes * This, - /* [in] */ ULARGE_INTEGER ulOffset, - /* [annotation][size_is][in] */ - _In_reads_bytes_(cb) const void *pv, - /* [in] */ ULONG cb, - /* [annotation][out] */ - _Out_opt_ ULONG *pcbWritten); - - HRESULT ( STDMETHODCALLTYPE *Flush )( - __RPC__in ILockBytes * This); - - HRESULT ( STDMETHODCALLTYPE *SetSize )( - __RPC__in ILockBytes * This, - /* [in] */ ULARGE_INTEGER cb); - - HRESULT ( STDMETHODCALLTYPE *LockRegion )( - __RPC__in ILockBytes * This, - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType); - - HRESULT ( STDMETHODCALLTYPE *UnlockRegion )( - __RPC__in ILockBytes * This, - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType); - - HRESULT ( STDMETHODCALLTYPE *Stat )( - __RPC__in ILockBytes * This, - /* [out] */ __RPC__out STATSTG *pstatstg, - /* [in] */ DWORD grfStatFlag); - - END_INTERFACE - } ILockBytesVtbl; - - interface ILockBytes - { - CONST_VTBL struct ILockBytesVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ILockBytes_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ILockBytes_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ILockBytes_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ILockBytes_ReadAt(This,ulOffset,pv,cb,pcbRead) \ - ( (This)->lpVtbl -> ReadAt(This,ulOffset,pv,cb,pcbRead) ) - -#define ILockBytes_WriteAt(This,ulOffset,pv,cb,pcbWritten) \ - ( (This)->lpVtbl -> WriteAt(This,ulOffset,pv,cb,pcbWritten) ) - -#define ILockBytes_Flush(This) \ - ( (This)->lpVtbl -> Flush(This) ) - -#define ILockBytes_SetSize(This,cb) \ - ( (This)->lpVtbl -> SetSize(This,cb) ) - -#define ILockBytes_LockRegion(This,libOffset,cb,dwLockType) \ - ( (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType) ) - -#define ILockBytes_UnlockRegion(This,libOffset,cb,dwLockType) \ - ( (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType) ) - -#define ILockBytes_Stat(This,pstatstg,grfStatFlag) \ - ( (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT __stdcall ILockBytes_RemoteReadAt_Proxy( - __RPC__in ILockBytes * This, - /* [in] */ ULARGE_INTEGER ulOffset, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cb, *pcbRead) byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbRead); - - -void __RPC_STUB ILockBytes_RemoteReadAt_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ILockBytes_RemoteWriteAt_Proxy( - __RPC__in ILockBytes * This, - /* [in] */ ULARGE_INTEGER ulOffset, - /* [size_is][in] */ __RPC__in_ecount_full(cb) const byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbWritten); - - -void __RPC_STUB ILockBytes_RemoteWriteAt_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ILockBytes_INTERFACE_DEFINED__ */ - - -#ifndef __IEnumFORMATETC_INTERFACE_DEFINED__ -#define __IEnumFORMATETC_INTERFACE_DEFINED__ - -/* interface IEnumFORMATETC */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumFORMATETC *LPENUMFORMATETC; - - -typedef struct tagDVTARGETDEVICE - { - DWORD tdSize; - WORD tdDriverNameOffset; - WORD tdDeviceNameOffset; - WORD tdPortNameOffset; - WORD tdExtDevmodeOffset; - /* [size_is] */ BYTE tdData[ 1 ]; - } DVTARGETDEVICE; - - -typedef CLIPFORMAT *LPCLIPFORMAT; - -typedef struct tagFORMATETC - { - CLIPFORMAT cfFormat; - /* [unique] */ DVTARGETDEVICE *ptd; - DWORD dwAspect; - LONG lindex; - DWORD tymed; - } FORMATETC; - -typedef struct tagFORMATETC *LPFORMATETC; - - -EXTERN_C const IID IID_IEnumFORMATETC; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000103-0000-0000-C000-000000000046") - IEnumFORMATETC : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) FORMATETC *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumFORMATETC **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumFORMATETCVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumFORMATETC * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnumFORMATETC * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnumFORMATETC * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumFORMATETC * This, - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) FORMATETC *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - __RPC__in IEnumFORMATETC * This, - /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in IEnumFORMATETC * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - __RPC__in IEnumFORMATETC * This, - /* [out] */ __RPC__deref_out_opt IEnumFORMATETC **ppenum); - - END_INTERFACE - } IEnumFORMATETCVtbl; - - interface IEnumFORMATETC - { - CONST_VTBL struct IEnumFORMATETCVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumFORMATETC_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumFORMATETC_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumFORMATETC_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumFORMATETC_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumFORMATETC_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumFORMATETC_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumFORMATETC_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumFORMATETC_RemoteNext_Proxy( - __RPC__in IEnumFORMATETC * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) FORMATETC *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumFORMATETC_INTERFACE_DEFINED__ */ - - -#ifndef __IEnumSTATDATA_INTERFACE_DEFINED__ -#define __IEnumSTATDATA_INTERFACE_DEFINED__ - -/* interface IEnumSTATDATA */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumSTATDATA *LPENUMSTATDATA; - -typedef -enum tagADVF - { - ADVF_NODATA = 1, - ADVF_PRIMEFIRST = 2, - ADVF_ONLYONCE = 4, - ADVF_DATAONSTOP = 64, - ADVFCACHE_NOHANDLER = 8, - ADVFCACHE_FORCEBUILTIN = 16, - ADVFCACHE_ONSAVE = 32 - } ADVF; - -typedef struct tagSTATDATA - { - FORMATETC formatetc; - DWORD advf; - /* [unique] */ IAdviseSink *pAdvSink; - DWORD dwConnection; - } STATDATA; - -typedef STATDATA *LPSTATDATA; - - -EXTERN_C const IID IID_IEnumSTATDATA; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000105-0000-0000-C000-000000000046") - IEnumSTATDATA : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) STATDATA *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumSTATDATA **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumSTATDATAVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumSTATDATA * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnumSTATDATA * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnumSTATDATA * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumSTATDATA * This, - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) STATDATA *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - __RPC__in IEnumSTATDATA * This, - /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in IEnumSTATDATA * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - __RPC__in IEnumSTATDATA * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATDATA **ppenum); - - END_INTERFACE - } IEnumSTATDATAVtbl; - - interface IEnumSTATDATA - { - CONST_VTBL struct IEnumSTATDATAVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumSTATDATA_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumSTATDATA_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumSTATDATA_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumSTATDATA_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumSTATDATA_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumSTATDATA_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumSTATDATA_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATDATA_RemoteNext_Proxy( - __RPC__in IEnumSTATDATA * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATDATA *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumSTATDATA_INTERFACE_DEFINED__ */ - - -#ifndef __IRootStorage_INTERFACE_DEFINED__ -#define __IRootStorage_INTERFACE_DEFINED__ - -/* interface IRootStorage */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IRootStorage *LPROOTSTORAGE; - - -EXTERN_C const IID IID_IRootStorage; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000012-0000-0000-C000-000000000046") - IRootStorage : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SwitchToFile( - /* [in] */ __RPC__in LPOLESTR pszFile) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRootStorageVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IRootStorage * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IRootStorage * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IRootStorage * This); - - HRESULT ( STDMETHODCALLTYPE *SwitchToFile )( - __RPC__in IRootStorage * This, - /* [in] */ __RPC__in LPOLESTR pszFile); - - END_INTERFACE - } IRootStorageVtbl; - - interface IRootStorage - { - CONST_VTBL struct IRootStorageVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRootStorage_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRootStorage_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRootStorage_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRootStorage_SwitchToFile(This,pszFile) \ - ( (This)->lpVtbl -> SwitchToFile(This,pszFile) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRootStorage_INTERFACE_DEFINED__ */ - - -#ifndef __IAdviseSink_INTERFACE_DEFINED__ -#define __IAdviseSink_INTERFACE_DEFINED__ - -/* interface IAdviseSink */ -/* [unique][async_uuid][uuid][object] */ - -typedef IAdviseSink *LPADVISESINK; - -typedef /* [v1_enum] */ -enum tagTYMED - { - TYMED_HGLOBAL = 1, - TYMED_FILE = 2, - TYMED_ISTREAM = 4, - TYMED_ISTORAGE = 8, - TYMED_GDI = 16, - TYMED_MFPICT = 32, - TYMED_ENHMF = 64, - TYMED_NULL = 0 - } TYMED; - -#ifndef RC_INVOKED -#if _MSC_VER >= 1200 -#pragma warning(push) -#endif -#pragma warning(disable:4200) -#endif -typedef struct tagRemSTGMEDIUM - { - DWORD tymed; - DWORD dwHandleType; - ULONG pData; - ULONG pUnkForRelease; - ULONG cbData; - /* [size_is] */ byte data[ 1 ]; - } RemSTGMEDIUM; - -#ifndef RC_INVOKED -#if _MSC_VER >= 1200 -#pragma warning(pop) -#else -#pragma warning(default:4200) -#endif -#endif -#ifdef NONAMELESSUNION -typedef struct tagSTGMEDIUM { - DWORD tymed; - union { - HBITMAP hBitmap; - HMETAFILEPICT hMetaFilePict; - HENHMETAFILE hEnhMetaFile; - HGLOBAL hGlobal; - LPOLESTR lpszFileName; - IStream *pstm; - IStorage *pstg; - } u; - IUnknown *pUnkForRelease; -}uSTGMEDIUM; -#else -typedef struct tagSTGMEDIUM - { - DWORD tymed; - /* [switch_is][switch_type] */ union - { - /* [case()] */ HBITMAP hBitmap; - /* [case()] */ HMETAFILEPICT hMetaFilePict; - /* [case()] */ HENHMETAFILE hEnhMetaFile; - /* [case()] */ HGLOBAL hGlobal; - /* [case()] */ LPOLESTR lpszFileName; - /* [case()] */ IStream *pstm; - /* [case()] */ IStorage *pstg; - /* [default] */ /* Empty union arm */ - } DUMMYUNIONNAME; - /* [unique] */ IUnknown *pUnkForRelease; - } uSTGMEDIUM; - -#endif /* !NONAMELESSUNION */ -typedef struct _GDI_OBJECT - { - DWORD ObjectType; - /* [switch_is] */ /* [switch_type] */ union __MIDL_IAdviseSink_0002 - { - /* [case()] */ wireHBITMAP hBitmap; - /* [case()] */ wireHPALETTE hPalette; - /* [default] */ wireHGLOBAL hGeneric; - } u; - } GDI_OBJECT; - -typedef struct _userSTGMEDIUM - { - struct _STGMEDIUM_UNION - { - DWORD tymed; - /* [switch_is] */ /* [switch_type] */ union __MIDL_IAdviseSink_0003 - { - /* [case()] */ /* Empty union arm */ - /* [case()] */ wireHMETAFILEPICT hMetaFilePict; - /* [case()] */ wireHENHMETAFILE hHEnhMetaFile; - /* [case()] */ GDI_OBJECT *hGdiHandle; - /* [case()] */ wireHGLOBAL hGlobal; - /* [case()] */ LPOLESTR lpszFileName; - /* [case()] */ BYTE_BLOB *pstm; - /* [case()] */ BYTE_BLOB *pstg; - } u; - } DUMMYUNIONNAME; - IUnknown *pUnkForRelease; - } userSTGMEDIUM; - -typedef /* [unique] */ __RPC_unique_pointer userSTGMEDIUM *wireSTGMEDIUM; - -typedef /* [wire_marshal] */ uSTGMEDIUM STGMEDIUM; - -typedef /* [unique] */ __RPC_unique_pointer userSTGMEDIUM *wireASYNC_STGMEDIUM; - -typedef /* [wire_marshal] */ STGMEDIUM ASYNC_STGMEDIUM; - -typedef STGMEDIUM *LPSTGMEDIUM; - -typedef struct _userFLAG_STGMEDIUM - { - LONG ContextFlags; - LONG fPassOwnership; - userSTGMEDIUM Stgmed; - } userFLAG_STGMEDIUM; - -typedef /* [unique] */ __RPC_unique_pointer userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM; - -typedef /* [wire_marshal] */ struct _FLAG_STGMEDIUM - { - LONG ContextFlags; - LONG fPassOwnership; - STGMEDIUM Stgmed; - } FLAG_STGMEDIUM; - - -EXTERN_C const IID IID_IAdviseSink; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000010f-0000-0000-C000-000000000046") - IAdviseSink : public IUnknown - { - public: - virtual /* [local] */ void STDMETHODCALLTYPE OnDataChange( - /* [annotation][unique][in] */ - _In_ FORMATETC *pFormatetc, - /* [annotation][unique][in] */ - _In_ STGMEDIUM *pStgmed) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE OnViewChange( - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE OnRename( - /* [annotation][in] */ - _In_ IMoniker *pmk) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE OnSave( void) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE OnClose( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAdviseSinkVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IAdviseSink * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IAdviseSink * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IAdviseSink * This); - - /* [local] */ void ( STDMETHODCALLTYPE *OnDataChange )( - IAdviseSink * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pFormatetc, - /* [annotation][unique][in] */ - _In_ STGMEDIUM *pStgmed); - - /* [local] */ void ( STDMETHODCALLTYPE *OnViewChange )( - IAdviseSink * This, - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex); - - /* [local] */ void ( STDMETHODCALLTYPE *OnRename )( - IAdviseSink * This, - /* [annotation][in] */ - _In_ IMoniker *pmk); - - /* [local] */ void ( STDMETHODCALLTYPE *OnSave )( - IAdviseSink * This); - - /* [local] */ void ( STDMETHODCALLTYPE *OnClose )( - IAdviseSink * This); - - END_INTERFACE - } IAdviseSinkVtbl; - - interface IAdviseSink - { - CONST_VTBL struct IAdviseSinkVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAdviseSink_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAdviseSink_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAdviseSink_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAdviseSink_OnDataChange(This,pFormatetc,pStgmed) \ - ( (This)->lpVtbl -> OnDataChange(This,pFormatetc,pStgmed) ) - -#define IAdviseSink_OnViewChange(This,dwAspect,lindex) \ - ( (This)->lpVtbl -> OnViewChange(This,dwAspect,lindex) ) - -#define IAdviseSink_OnRename(This,pmk) \ - ( (This)->lpVtbl -> OnRename(This,pmk) ) - -#define IAdviseSink_OnSave(This) \ - ( (This)->lpVtbl -> OnSave(This) ) - -#define IAdviseSink_OnClose(This) \ - ( (This)->lpVtbl -> OnClose(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnDataChange_Proxy( - __RPC__in IAdviseSink * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pFormatetc, - /* [unique][in] */ __RPC__in_opt ASYNC_STGMEDIUM *pStgmed); - - -void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnViewChange_Proxy( - __RPC__in IAdviseSink * This, - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex); - - -void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnRename_Proxy( - __RPC__in IAdviseSink * This, - /* [in] */ __RPC__in_opt IMoniker *pmk); - - -void __RPC_STUB IAdviseSink_RemoteOnRename_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnSave_Proxy( - __RPC__in IAdviseSink * This); - - -void __RPC_STUB IAdviseSink_RemoteOnSave_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnClose_Proxy( - __RPC__in IAdviseSink * This); - - -void __RPC_STUB IAdviseSink_RemoteOnClose_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IAdviseSink_INTERFACE_DEFINED__ */ - - -#ifndef __AsyncIAdviseSink_INTERFACE_DEFINED__ -#define __AsyncIAdviseSink_INTERFACE_DEFINED__ - -/* interface AsyncIAdviseSink */ -/* [uuid][unique][object] */ - - -EXTERN_C const IID IID_AsyncIAdviseSink; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000150-0000-0000-C000-000000000046") - AsyncIAdviseSink : public IUnknown - { - public: - virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnDataChange( - /* [annotation][unique][in] */ - _In_ FORMATETC *pFormatetc, - /* [annotation][unique][in] */ - _In_ STGMEDIUM *pStgmed) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnDataChange( void) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnViewChange( - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnViewChange( void) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnRename( - /* [annotation][in] */ - _In_ IMoniker *pmk) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnRename( void) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnSave( void) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnSave( void) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnClose( void) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnClose( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIAdviseSinkVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in AsyncIAdviseSink * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in AsyncIAdviseSink * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in AsyncIAdviseSink * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnDataChange )( - AsyncIAdviseSink * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pFormatetc, - /* [annotation][unique][in] */ - _In_ STGMEDIUM *pStgmed); - - /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnDataChange )( - AsyncIAdviseSink * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnViewChange )( - AsyncIAdviseSink * This, - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex); - - /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnViewChange )( - AsyncIAdviseSink * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnRename )( - AsyncIAdviseSink * This, - /* [annotation][in] */ - _In_ IMoniker *pmk); - - /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnRename )( - AsyncIAdviseSink * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnSave )( - AsyncIAdviseSink * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnSave )( - AsyncIAdviseSink * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnClose )( - AsyncIAdviseSink * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnClose )( - AsyncIAdviseSink * This); - - END_INTERFACE - } AsyncIAdviseSinkVtbl; - - interface AsyncIAdviseSink - { - CONST_VTBL struct AsyncIAdviseSinkVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIAdviseSink_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIAdviseSink_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIAdviseSink_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIAdviseSink_Begin_OnDataChange(This,pFormatetc,pStgmed) \ - ( (This)->lpVtbl -> Begin_OnDataChange(This,pFormatetc,pStgmed) ) - -#define AsyncIAdviseSink_Finish_OnDataChange(This) \ - ( (This)->lpVtbl -> Finish_OnDataChange(This) ) - -#define AsyncIAdviseSink_Begin_OnViewChange(This,dwAspect,lindex) \ - ( (This)->lpVtbl -> Begin_OnViewChange(This,dwAspect,lindex) ) - -#define AsyncIAdviseSink_Finish_OnViewChange(This) \ - ( (This)->lpVtbl -> Finish_OnViewChange(This) ) - -#define AsyncIAdviseSink_Begin_OnRename(This,pmk) \ - ( (This)->lpVtbl -> Begin_OnRename(This,pmk) ) - -#define AsyncIAdviseSink_Finish_OnRename(This) \ - ( (This)->lpVtbl -> Finish_OnRename(This) ) - -#define AsyncIAdviseSink_Begin_OnSave(This) \ - ( (This)->lpVtbl -> Begin_OnSave(This) ) - -#define AsyncIAdviseSink_Finish_OnSave(This) \ - ( (This)->lpVtbl -> Finish_OnSave(This) ) - -#define AsyncIAdviseSink_Begin_OnClose(This) \ - ( (This)->lpVtbl -> Begin_OnClose(This) ) - -#define AsyncIAdviseSink_Finish_OnClose(This) \ - ( (This)->lpVtbl -> Finish_OnClose(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnDataChange_Proxy( - __RPC__in AsyncIAdviseSink * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pFormatetc, - /* [unique][in] */ __RPC__in_opt ASYNC_STGMEDIUM *pStgmed); - - -void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnDataChange_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnDataChange_Proxy( - __RPC__in AsyncIAdviseSink * This); - - -void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnDataChange_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnViewChange_Proxy( - __RPC__in AsyncIAdviseSink * This, - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex); - - -void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnViewChange_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnViewChange_Proxy( - __RPC__in AsyncIAdviseSink * This); - - -void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnViewChange_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnRename_Proxy( - __RPC__in AsyncIAdviseSink * This, - /* [in] */ __RPC__in_opt IMoniker *pmk); - - -void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnRename_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnRename_Proxy( - __RPC__in AsyncIAdviseSink * This); - - -void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnRename_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnSave_Proxy( - __RPC__in AsyncIAdviseSink * This); - - -void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnSave_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnSave_Proxy( - __RPC__in AsyncIAdviseSink * This); - - -void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnSave_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnClose_Proxy( - __RPC__in AsyncIAdviseSink * This); - - -void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnClose_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnClose_Proxy( - __RPC__in AsyncIAdviseSink * This); - - -void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnClose_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __AsyncIAdviseSink_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0071 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0071_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0071_v0_0_s_ifspec; - -#ifndef __IAdviseSink2_INTERFACE_DEFINED__ -#define __IAdviseSink2_INTERFACE_DEFINED__ - -/* interface IAdviseSink2 */ -/* [unique][async_uuid][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IAdviseSink2 *LPADVISESINK2; - - -EXTERN_C const IID IID_IAdviseSink2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000125-0000-0000-C000-000000000046") - IAdviseSink2 : public IAdviseSink - { - public: - virtual /* [local] */ void STDMETHODCALLTYPE OnLinkSrcChange( - /* [annotation][unique][in] */ - _In_ IMoniker *pmk) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAdviseSink2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IAdviseSink2 * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IAdviseSink2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IAdviseSink2 * This); - - /* [local] */ void ( STDMETHODCALLTYPE *OnDataChange )( - IAdviseSink2 * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pFormatetc, - /* [annotation][unique][in] */ - _In_ STGMEDIUM *pStgmed); - - /* [local] */ void ( STDMETHODCALLTYPE *OnViewChange )( - IAdviseSink2 * This, - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex); - - /* [local] */ void ( STDMETHODCALLTYPE *OnRename )( - IAdviseSink2 * This, - /* [annotation][in] */ - _In_ IMoniker *pmk); - - /* [local] */ void ( STDMETHODCALLTYPE *OnSave )( - IAdviseSink2 * This); - - /* [local] */ void ( STDMETHODCALLTYPE *OnClose )( - IAdviseSink2 * This); - - /* [local] */ void ( STDMETHODCALLTYPE *OnLinkSrcChange )( - IAdviseSink2 * This, - /* [annotation][unique][in] */ - _In_ IMoniker *pmk); - - END_INTERFACE - } IAdviseSink2Vtbl; - - interface IAdviseSink2 - { - CONST_VTBL struct IAdviseSink2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAdviseSink2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAdviseSink2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAdviseSink2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAdviseSink2_OnDataChange(This,pFormatetc,pStgmed) \ - ( (This)->lpVtbl -> OnDataChange(This,pFormatetc,pStgmed) ) - -#define IAdviseSink2_OnViewChange(This,dwAspect,lindex) \ - ( (This)->lpVtbl -> OnViewChange(This,dwAspect,lindex) ) - -#define IAdviseSink2_OnRename(This,pmk) \ - ( (This)->lpVtbl -> OnRename(This,pmk) ) - -#define IAdviseSink2_OnSave(This) \ - ( (This)->lpVtbl -> OnSave(This) ) - -#define IAdviseSink2_OnClose(This) \ - ( (This)->lpVtbl -> OnClose(This) ) - - -#define IAdviseSink2_OnLinkSrcChange(This,pmk) \ - ( (This)->lpVtbl -> OnLinkSrcChange(This,pmk) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink2_RemoteOnLinkSrcChange_Proxy( - __RPC__in IAdviseSink2 * This, - /* [unique][in] */ __RPC__in_opt IMoniker *pmk); - - -void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IAdviseSink2_INTERFACE_DEFINED__ */ - - -#ifndef __AsyncIAdviseSink2_INTERFACE_DEFINED__ -#define __AsyncIAdviseSink2_INTERFACE_DEFINED__ - -/* interface AsyncIAdviseSink2 */ -/* [uuid][unique][object] */ - - -EXTERN_C const IID IID_AsyncIAdviseSink2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000151-0000-0000-C000-000000000046") - AsyncIAdviseSink2 : public AsyncIAdviseSink - { - public: - virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnLinkSrcChange( - /* [annotation][unique][in] */ - _In_ IMoniker *pmk) = 0; - - virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnLinkSrcChange( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIAdviseSink2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in AsyncIAdviseSink2 * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in AsyncIAdviseSink2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in AsyncIAdviseSink2 * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnDataChange )( - AsyncIAdviseSink2 * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pFormatetc, - /* [annotation][unique][in] */ - _In_ STGMEDIUM *pStgmed); - - /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnDataChange )( - AsyncIAdviseSink2 * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnViewChange )( - AsyncIAdviseSink2 * This, - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex); - - /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnViewChange )( - AsyncIAdviseSink2 * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnRename )( - AsyncIAdviseSink2 * This, - /* [annotation][in] */ - _In_ IMoniker *pmk); - - /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnRename )( - AsyncIAdviseSink2 * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnSave )( - AsyncIAdviseSink2 * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnSave )( - AsyncIAdviseSink2 * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnClose )( - AsyncIAdviseSink2 * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnClose )( - AsyncIAdviseSink2 * This); - - /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnLinkSrcChange )( - AsyncIAdviseSink2 * This, - /* [annotation][unique][in] */ - _In_ IMoniker *pmk); - - /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnLinkSrcChange )( - AsyncIAdviseSink2 * This); - - END_INTERFACE - } AsyncIAdviseSink2Vtbl; - - interface AsyncIAdviseSink2 - { - CONST_VTBL struct AsyncIAdviseSink2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIAdviseSink2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIAdviseSink2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIAdviseSink2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIAdviseSink2_Begin_OnDataChange(This,pFormatetc,pStgmed) \ - ( (This)->lpVtbl -> Begin_OnDataChange(This,pFormatetc,pStgmed) ) - -#define AsyncIAdviseSink2_Finish_OnDataChange(This) \ - ( (This)->lpVtbl -> Finish_OnDataChange(This) ) - -#define AsyncIAdviseSink2_Begin_OnViewChange(This,dwAspect,lindex) \ - ( (This)->lpVtbl -> Begin_OnViewChange(This,dwAspect,lindex) ) - -#define AsyncIAdviseSink2_Finish_OnViewChange(This) \ - ( (This)->lpVtbl -> Finish_OnViewChange(This) ) - -#define AsyncIAdviseSink2_Begin_OnRename(This,pmk) \ - ( (This)->lpVtbl -> Begin_OnRename(This,pmk) ) - -#define AsyncIAdviseSink2_Finish_OnRename(This) \ - ( (This)->lpVtbl -> Finish_OnRename(This) ) - -#define AsyncIAdviseSink2_Begin_OnSave(This) \ - ( (This)->lpVtbl -> Begin_OnSave(This) ) - -#define AsyncIAdviseSink2_Finish_OnSave(This) \ - ( (This)->lpVtbl -> Finish_OnSave(This) ) - -#define AsyncIAdviseSink2_Begin_OnClose(This) \ - ( (This)->lpVtbl -> Begin_OnClose(This) ) - -#define AsyncIAdviseSink2_Finish_OnClose(This) \ - ( (This)->lpVtbl -> Finish_OnClose(This) ) - - -#define AsyncIAdviseSink2_Begin_OnLinkSrcChange(This,pmk) \ - ( (This)->lpVtbl -> Begin_OnLinkSrcChange(This,pmk) ) - -#define AsyncIAdviseSink2_Finish_OnLinkSrcChange(This) \ - ( (This)->lpVtbl -> Finish_OnLinkSrcChange(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Proxy( - __RPC__in AsyncIAdviseSink2 * This, - /* [unique][in] */ __RPC__in_opt IMoniker *pmk); - - -void __RPC_STUB AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Proxy( - __RPC__in AsyncIAdviseSink2 * This); - - -void __RPC_STUB AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __AsyncIAdviseSink2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0072 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0072_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0072_v0_0_s_ifspec; - -#ifndef __IDataObject_INTERFACE_DEFINED__ -#define __IDataObject_INTERFACE_DEFINED__ - -/* interface IDataObject */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IDataObject *LPDATAOBJECT; - -typedef -enum tagDATADIR - { - DATADIR_GET = 1, - DATADIR_SET = 2 - } DATADIR; - - -EXTERN_C const IID IID_IDataObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000010e-0000-0000-C000-000000000046") - IDataObject : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetData( - /* [annotation][unique][in] */ - _In_ FORMATETC *pformatetcIn, - /* [annotation][out] */ - _Out_ STGMEDIUM *pmedium) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDataHere( - /* [annotation][unique][in] */ - _In_ FORMATETC *pformatetc, - /* [annotation][out][in] */ - _Inout_ STGMEDIUM *pmedium) = 0; - - virtual HRESULT STDMETHODCALLTYPE QueryGetData( - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc( - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatectIn, - /* [out] */ __RPC__out FORMATETC *pformatetcOut) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetData( - /* [annotation][unique][in] */ - _In_ FORMATETC *pformatetc, - /* [annotation][unique][in] */ - _In_ STGMEDIUM *pmedium, - /* [in] */ BOOL fRelease) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc( - /* [in] */ DWORD dwDirection, - /* [out] */ __RPC__deref_out_opt IEnumFORMATETC **ppenumFormatEtc) = 0; - - virtual HRESULT STDMETHODCALLTYPE DAdvise( - /* [in] */ __RPC__in FORMATETC *pformatetc, - /* [in] */ DWORD advf, - /* [unique][in] */ __RPC__in_opt IAdviseSink *pAdvSink, - /* [out] */ __RPC__out DWORD *pdwConnection) = 0; - - virtual HRESULT STDMETHODCALLTYPE DUnadvise( - /* [in] */ DWORD dwConnection) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumDAdvise( - /* [out] */ __RPC__deref_out_opt IEnumSTATDATA **ppenumAdvise) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDataObjectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IDataObject * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IDataObject * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IDataObject * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetData )( - IDataObject * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pformatetcIn, - /* [annotation][out] */ - _Out_ STGMEDIUM *pmedium); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDataHere )( - IDataObject * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pformatetc, - /* [annotation][out][in] */ - _Inout_ STGMEDIUM *pmedium); - - HRESULT ( STDMETHODCALLTYPE *QueryGetData )( - __RPC__in IDataObject * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc); - - HRESULT ( STDMETHODCALLTYPE *GetCanonicalFormatEtc )( - __RPC__in IDataObject * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatectIn, - /* [out] */ __RPC__out FORMATETC *pformatetcOut); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetData )( - IDataObject * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pformatetc, - /* [annotation][unique][in] */ - _In_ STGMEDIUM *pmedium, - /* [in] */ BOOL fRelease); - - HRESULT ( STDMETHODCALLTYPE *EnumFormatEtc )( - __RPC__in IDataObject * This, - /* [in] */ DWORD dwDirection, - /* [out] */ __RPC__deref_out_opt IEnumFORMATETC **ppenumFormatEtc); - - HRESULT ( STDMETHODCALLTYPE *DAdvise )( - __RPC__in IDataObject * This, - /* [in] */ __RPC__in FORMATETC *pformatetc, - /* [in] */ DWORD advf, - /* [unique][in] */ __RPC__in_opt IAdviseSink *pAdvSink, - /* [out] */ __RPC__out DWORD *pdwConnection); - - HRESULT ( STDMETHODCALLTYPE *DUnadvise )( - __RPC__in IDataObject * This, - /* [in] */ DWORD dwConnection); - - HRESULT ( STDMETHODCALLTYPE *EnumDAdvise )( - __RPC__in IDataObject * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATDATA **ppenumAdvise); - - END_INTERFACE - } IDataObjectVtbl; - - interface IDataObject - { - CONST_VTBL struct IDataObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDataObject_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDataObject_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDataObject_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDataObject_GetData(This,pformatetcIn,pmedium) \ - ( (This)->lpVtbl -> GetData(This,pformatetcIn,pmedium) ) - -#define IDataObject_GetDataHere(This,pformatetc,pmedium) \ - ( (This)->lpVtbl -> GetDataHere(This,pformatetc,pmedium) ) - -#define IDataObject_QueryGetData(This,pformatetc) \ - ( (This)->lpVtbl -> QueryGetData(This,pformatetc) ) - -#define IDataObject_GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut) \ - ( (This)->lpVtbl -> GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut) ) - -#define IDataObject_SetData(This,pformatetc,pmedium,fRelease) \ - ( (This)->lpVtbl -> SetData(This,pformatetc,pmedium,fRelease) ) - -#define IDataObject_EnumFormatEtc(This,dwDirection,ppenumFormatEtc) \ - ( (This)->lpVtbl -> EnumFormatEtc(This,dwDirection,ppenumFormatEtc) ) - -#define IDataObject_DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection) \ - ( (This)->lpVtbl -> DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection) ) - -#define IDataObject_DUnadvise(This,dwConnection) \ - ( (This)->lpVtbl -> DUnadvise(This,dwConnection) ) - -#define IDataObject_EnumDAdvise(This,ppenumAdvise) \ - ( (This)->lpVtbl -> EnumDAdvise(This,ppenumAdvise) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetData_Proxy( - __RPC__in IDataObject * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetcIn, - /* [out] */ __RPC__out STGMEDIUM *pRemoteMedium); - - -void __RPC_STUB IDataObject_RemoteGetData_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetDataHere_Proxy( - __RPC__in IDataObject * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc, - /* [out][in] */ __RPC__inout STGMEDIUM *pRemoteMedium); - - -void __RPC_STUB IDataObject_RemoteGetDataHere_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IDataObject_RemoteSetData_Proxy( - __RPC__in IDataObject * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc, - /* [unique][in] */ __RPC__in_opt FLAG_STGMEDIUM *pmedium, - /* [in] */ BOOL fRelease); - - -void __RPC_STUB IDataObject_RemoteSetData_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IDataObject_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0073 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0073_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0073_v0_0_s_ifspec; - -#ifndef __IDataAdviseHolder_INTERFACE_DEFINED__ -#define __IDataAdviseHolder_INTERFACE_DEFINED__ - -/* interface IDataAdviseHolder */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IDataAdviseHolder *LPDATAADVISEHOLDER; - - -EXTERN_C const IID IID_IDataAdviseHolder; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000110-0000-0000-C000-000000000046") - IDataAdviseHolder : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Advise( - /* [annotation][unique][in] */ - _In_opt_ IDataObject *pDataObject, - /* [annotation][unique][in] */ - _In_ FORMATETC *pFetc, - /* [annotation][in] */ - _In_ DWORD advf, - /* [annotation][unique][in] */ - _In_ IAdviseSink *pAdvise, - /* [annotation][out] */ - _Out_ DWORD *pdwConnection) = 0; - - virtual HRESULT STDMETHODCALLTYPE Unadvise( - /* [annotation][in] */ - _In_ DWORD dwConnection) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumAdvise( - /* [annotation][out] */ - _Outptr_ IEnumSTATDATA **ppenumAdvise) = 0; - - virtual HRESULT STDMETHODCALLTYPE SendOnDataChange( - /* [annotation][unique][in] */ - _In_ IDataObject *pDataObject, - /* [annotation][in] */ - _Reserved_ DWORD dwReserved, - /* [annotation][in] */ - _In_ DWORD advf) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDataAdviseHolderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDataAdviseHolder * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDataAdviseHolder * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDataAdviseHolder * This); - - HRESULT ( STDMETHODCALLTYPE *Advise )( - IDataAdviseHolder * This, - /* [annotation][unique][in] */ - _In_opt_ IDataObject *pDataObject, - /* [annotation][unique][in] */ - _In_ FORMATETC *pFetc, - /* [annotation][in] */ - _In_ DWORD advf, - /* [annotation][unique][in] */ - _In_ IAdviseSink *pAdvise, - /* [annotation][out] */ - _Out_ DWORD *pdwConnection); - - HRESULT ( STDMETHODCALLTYPE *Unadvise )( - IDataAdviseHolder * This, - /* [annotation][in] */ - _In_ DWORD dwConnection); - - HRESULT ( STDMETHODCALLTYPE *EnumAdvise )( - IDataAdviseHolder * This, - /* [annotation][out] */ - _Outptr_ IEnumSTATDATA **ppenumAdvise); - - HRESULT ( STDMETHODCALLTYPE *SendOnDataChange )( - IDataAdviseHolder * This, - /* [annotation][unique][in] */ - _In_ IDataObject *pDataObject, - /* [annotation][in] */ - _Reserved_ DWORD dwReserved, - /* [annotation][in] */ - _In_ DWORD advf); - - END_INTERFACE - } IDataAdviseHolderVtbl; - - interface IDataAdviseHolder - { - CONST_VTBL struct IDataAdviseHolderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDataAdviseHolder_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDataAdviseHolder_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDataAdviseHolder_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDataAdviseHolder_Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection) \ - ( (This)->lpVtbl -> Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection) ) - -#define IDataAdviseHolder_Unadvise(This,dwConnection) \ - ( (This)->lpVtbl -> Unadvise(This,dwConnection) ) - -#define IDataAdviseHolder_EnumAdvise(This,ppenumAdvise) \ - ( (This)->lpVtbl -> EnumAdvise(This,ppenumAdvise) ) - -#define IDataAdviseHolder_SendOnDataChange(This,pDataObject,dwReserved,advf) \ - ( (This)->lpVtbl -> SendOnDataChange(This,pDataObject,dwReserved,advf) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDataAdviseHolder_INTERFACE_DEFINED__ */ - - -#ifndef __IMessageFilter_INTERFACE_DEFINED__ -#define __IMessageFilter_INTERFACE_DEFINED__ - -/* interface IMessageFilter */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IMessageFilter *LPMESSAGEFILTER; - -typedef -enum tagCALLTYPE - { - CALLTYPE_TOPLEVEL = 1, - CALLTYPE_NESTED = 2, - CALLTYPE_ASYNC = 3, - CALLTYPE_TOPLEVEL_CALLPENDING = 4, - CALLTYPE_ASYNC_CALLPENDING = 5 - } CALLTYPE; - -typedef -enum tagSERVERCALL - { - SERVERCALL_ISHANDLED = 0, - SERVERCALL_REJECTED = 1, - SERVERCALL_RETRYLATER = 2 - } SERVERCALL; - -typedef -enum tagPENDINGTYPE - { - PENDINGTYPE_TOPLEVEL = 1, - PENDINGTYPE_NESTED = 2 - } PENDINGTYPE; - -typedef -enum tagPENDINGMSG - { - PENDINGMSG_CANCELCALL = 0, - PENDINGMSG_WAITNOPROCESS = 1, - PENDINGMSG_WAITDEFPROCESS = 2 - } PENDINGMSG; - -typedef struct tagINTERFACEINFO - { - IUnknown *pUnk; - IID iid; - WORD wMethod; - } INTERFACEINFO; - -typedef struct tagINTERFACEINFO *LPINTERFACEINFO; - - -EXTERN_C const IID IID_IMessageFilter; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000016-0000-0000-C000-000000000046") - IMessageFilter : public IUnknown - { - public: - virtual DWORD STDMETHODCALLTYPE HandleInComingCall( - /* [annotation][in] */ - _In_ DWORD dwCallType, - /* [annotation][in] */ - _In_ HTASK htaskCaller, - /* [annotation][in] */ - _In_ DWORD dwTickCount, - /* [annotation][in] */ - _In_opt_ LPINTERFACEINFO lpInterfaceInfo) = 0; - - virtual DWORD STDMETHODCALLTYPE RetryRejectedCall( - /* [annotation][in] */ - _In_ HTASK htaskCallee, - /* [annotation][in] */ - _In_ DWORD dwTickCount, - /* [annotation][in] */ - _In_ DWORD dwRejectType) = 0; - - virtual DWORD STDMETHODCALLTYPE MessagePending( - /* [annotation][in] */ - _In_ HTASK htaskCallee, - /* [annotation][in] */ - _In_ DWORD dwTickCount, - /* [annotation][in] */ - _In_ DWORD dwPendingType) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMessageFilterVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMessageFilter * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMessageFilter * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMessageFilter * This); - - DWORD ( STDMETHODCALLTYPE *HandleInComingCall )( - IMessageFilter * This, - /* [annotation][in] */ - _In_ DWORD dwCallType, - /* [annotation][in] */ - _In_ HTASK htaskCaller, - /* [annotation][in] */ - _In_ DWORD dwTickCount, - /* [annotation][in] */ - _In_opt_ LPINTERFACEINFO lpInterfaceInfo); - - DWORD ( STDMETHODCALLTYPE *RetryRejectedCall )( - IMessageFilter * This, - /* [annotation][in] */ - _In_ HTASK htaskCallee, - /* [annotation][in] */ - _In_ DWORD dwTickCount, - /* [annotation][in] */ - _In_ DWORD dwRejectType); - - DWORD ( STDMETHODCALLTYPE *MessagePending )( - IMessageFilter * This, - /* [annotation][in] */ - _In_ HTASK htaskCallee, - /* [annotation][in] */ - _In_ DWORD dwTickCount, - /* [annotation][in] */ - _In_ DWORD dwPendingType); - - END_INTERFACE - } IMessageFilterVtbl; - - interface IMessageFilter - { - CONST_VTBL struct IMessageFilterVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMessageFilter_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMessageFilter_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMessageFilter_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMessageFilter_HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo) \ - ( (This)->lpVtbl -> HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo) ) - -#define IMessageFilter_RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType) \ - ( (This)->lpVtbl -> RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType) ) - -#define IMessageFilter_MessagePending(This,htaskCallee,dwTickCount,dwPendingType) \ - ( (This)->lpVtbl -> MessagePending(This,htaskCallee,dwTickCount,dwPendingType) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMessageFilter_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0075 */ -/* [local] */ - - -// Well-known Property Set Format IDs -extern const FMTID FMTID_SummaryInformation; - -extern const FMTID FMTID_DocSummaryInformation; - -extern const FMTID FMTID_UserDefinedProperties; - -extern const FMTID FMTID_DiscardableInformation; - -extern const FMTID FMTID_ImageSummaryInformation; - -extern const FMTID FMTID_AudioSummaryInformation; - -extern const FMTID FMTID_VideoSummaryInformation; - -extern const FMTID FMTID_MediaFileSummaryInformation; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0075_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0075_v0_0_s_ifspec; - -#ifndef __IClassActivator_INTERFACE_DEFINED__ -#define __IClassActivator_INTERFACE_DEFINED__ - -/* interface IClassActivator */ -/* [uuid][object] */ - - -EXTERN_C const IID IID_IClassActivator; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000140-0000-0000-C000-000000000046") - IClassActivator : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetClassObject( - /* [in] */ __RPC__in REFCLSID rclsid, - /* [in] */ DWORD dwClassContext, - /* [in] */ LCID locale, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IClassActivatorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IClassActivator * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IClassActivator * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IClassActivator * This); - - HRESULT ( STDMETHODCALLTYPE *GetClassObject )( - __RPC__in IClassActivator * This, - /* [in] */ __RPC__in REFCLSID rclsid, - /* [in] */ DWORD dwClassContext, - /* [in] */ LCID locale, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt void **ppv); - - END_INTERFACE - } IClassActivatorVtbl; - - interface IClassActivator - { - CONST_VTBL struct IClassActivatorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IClassActivator_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IClassActivator_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IClassActivator_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IClassActivator_GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv) \ - ( (This)->lpVtbl -> GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IClassActivator_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0076 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0076_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0076_v0_0_s_ifspec; - -#ifndef __IFillLockBytes_INTERFACE_DEFINED__ -#define __IFillLockBytes_INTERFACE_DEFINED__ - -/* interface IFillLockBytes */ -/* [unique][uuid][object] */ - - -EXTERN_C const IID IID_IFillLockBytes; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("99caf010-415e-11cf-8814-00aa00b569f5") - IFillLockBytes : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE FillAppend( - /* [annotation][size_is][in] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation][out] */ - _Out_ ULONG *pcbWritten) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE FillAt( - /* [annotation][in] */ - _In_ ULARGE_INTEGER ulOffset, - /* [annotation][size_is][in] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation][out] */ - _Out_ ULONG *pcbWritten) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFillSize( - /* [in] */ ULARGE_INTEGER ulSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE Terminate( - /* [in] */ BOOL bCanceled) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IFillLockBytesVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IFillLockBytes * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IFillLockBytes * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IFillLockBytes * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *FillAppend )( - IFillLockBytes * This, - /* [annotation][size_is][in] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation][out] */ - _Out_ ULONG *pcbWritten); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *FillAt )( - IFillLockBytes * This, - /* [annotation][in] */ - _In_ ULARGE_INTEGER ulOffset, - /* [annotation][size_is][in] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation][out] */ - _Out_ ULONG *pcbWritten); - - HRESULT ( STDMETHODCALLTYPE *SetFillSize )( - __RPC__in IFillLockBytes * This, - /* [in] */ ULARGE_INTEGER ulSize); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( - __RPC__in IFillLockBytes * This, - /* [in] */ BOOL bCanceled); - - END_INTERFACE - } IFillLockBytesVtbl; - - interface IFillLockBytes - { - CONST_VTBL struct IFillLockBytesVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IFillLockBytes_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IFillLockBytes_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IFillLockBytes_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IFillLockBytes_FillAppend(This,pv,cb,pcbWritten) \ - ( (This)->lpVtbl -> FillAppend(This,pv,cb,pcbWritten) ) - -#define IFillLockBytes_FillAt(This,ulOffset,pv,cb,pcbWritten) \ - ( (This)->lpVtbl -> FillAt(This,ulOffset,pv,cb,pcbWritten) ) - -#define IFillLockBytes_SetFillSize(This,ulSize) \ - ( (This)->lpVtbl -> SetFillSize(This,ulSize) ) - -#define IFillLockBytes_Terminate(This,bCanceled) \ - ( (This)->lpVtbl -> Terminate(This,bCanceled) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT __stdcall IFillLockBytes_RemoteFillAppend_Proxy( - __RPC__in IFillLockBytes * This, - /* [size_is][in] */ __RPC__in_ecount_full(cb) const byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbWritten); - - -void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT __stdcall IFillLockBytes_RemoteFillAt_Proxy( - __RPC__in IFillLockBytes * This, - /* [in] */ ULARGE_INTEGER ulOffset, - /* [size_is][in] */ __RPC__in_ecount_full(cb) const byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbWritten); - - -void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IFillLockBytes_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0077 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0077_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0077_v0_0_s_ifspec; - -#ifndef __IProgressNotify_INTERFACE_DEFINED__ -#define __IProgressNotify_INTERFACE_DEFINED__ - -/* interface IProgressNotify */ -/* [unique][uuid][object] */ - - -EXTERN_C const IID IID_IProgressNotify; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a9d758a0-4617-11cf-95fc-00aa00680db4") - IProgressNotify : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE OnProgress( - /* [in] */ DWORD dwProgressCurrent, - /* [in] */ DWORD dwProgressMaximum, - /* [in] */ BOOL fAccurate, - /* [in] */ BOOL fOwner) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IProgressNotifyVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IProgressNotify * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IProgressNotify * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IProgressNotify * This); - - HRESULT ( STDMETHODCALLTYPE *OnProgress )( - __RPC__in IProgressNotify * This, - /* [in] */ DWORD dwProgressCurrent, - /* [in] */ DWORD dwProgressMaximum, - /* [in] */ BOOL fAccurate, - /* [in] */ BOOL fOwner); - - END_INTERFACE - } IProgressNotifyVtbl; - - interface IProgressNotify - { - CONST_VTBL struct IProgressNotifyVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IProgressNotify_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IProgressNotify_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IProgressNotify_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IProgressNotify_OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner) \ - ( (This)->lpVtbl -> OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IProgressNotify_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0078 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0078_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0078_v0_0_s_ifspec; - -#ifndef __ILayoutStorage_INTERFACE_DEFINED__ -#define __ILayoutStorage_INTERFACE_DEFINED__ - -/* interface ILayoutStorage */ -/* [unique][uuid][object][local] */ - -typedef struct tagStorageLayout - { - DWORD LayoutType; - OLECHAR *pwcsElementName; - LARGE_INTEGER cOffset; - LARGE_INTEGER cBytes; - } StorageLayout; - - -EXTERN_C const IID IID_ILayoutStorage; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0e6d4d90-6738-11cf-9608-00aa00680db4") - ILayoutStorage : public IUnknown - { - public: - virtual HRESULT __stdcall LayoutScript( - /* [annotation][in] */ - _In_reads_(nEntries) StorageLayout *pStorageLayout, - /* [annotation][in] */ - _In_ DWORD nEntries, - /* [annotation][in] */ - _Reserved_ DWORD glfInterleavedFlag) = 0; - - virtual HRESULT __stdcall BeginMonitor( void) = 0; - - virtual HRESULT __stdcall EndMonitor( void) = 0; - - virtual HRESULT __stdcall ReLayoutDocfile( - /* [annotation][in] */ - __RPC__in OLECHAR *pwcsNewDfName) = 0; - - virtual HRESULT __stdcall ReLayoutDocfileOnILockBytes( - /* [annotation][in] */ - _In_ ILockBytes *pILockBytes) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ILayoutStorageVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ILayoutStorage * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ILayoutStorage * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ILayoutStorage * This); - - HRESULT ( __stdcall *LayoutScript )( - ILayoutStorage * This, - /* [annotation][in] */ - _In_reads_(nEntries) StorageLayout *pStorageLayout, - /* [annotation][in] */ - _In_ DWORD nEntries, - /* [annotation][in] */ - _Reserved_ DWORD glfInterleavedFlag); - - HRESULT ( __stdcall *BeginMonitor )( - ILayoutStorage * This); - - HRESULT ( __stdcall *EndMonitor )( - ILayoutStorage * This); - - HRESULT ( __stdcall *ReLayoutDocfile )( - ILayoutStorage * This, - /* [annotation][in] */ - __RPC__in OLECHAR *pwcsNewDfName); - - HRESULT ( __stdcall *ReLayoutDocfileOnILockBytes )( - ILayoutStorage * This, - /* [annotation][in] */ - _In_ ILockBytes *pILockBytes); - - END_INTERFACE - } ILayoutStorageVtbl; - - interface ILayoutStorage - { - CONST_VTBL struct ILayoutStorageVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ILayoutStorage_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ILayoutStorage_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ILayoutStorage_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ILayoutStorage_LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag) \ - ( (This)->lpVtbl -> LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag) ) - -#define ILayoutStorage_BeginMonitor(This) \ - ( (This)->lpVtbl -> BeginMonitor(This) ) - -#define ILayoutStorage_EndMonitor(This) \ - ( (This)->lpVtbl -> EndMonitor(This) ) - -#define ILayoutStorage_ReLayoutDocfile(This,pwcsNewDfName) \ - ( (This)->lpVtbl -> ReLayoutDocfile(This,pwcsNewDfName) ) - -#define ILayoutStorage_ReLayoutDocfileOnILockBytes(This,pILockBytes) \ - ( (This)->lpVtbl -> ReLayoutDocfileOnILockBytes(This,pILockBytes) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ILayoutStorage_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0079 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0079_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0079_v0_0_s_ifspec; - -#ifndef __IBlockingLock_INTERFACE_DEFINED__ -#define __IBlockingLock_INTERFACE_DEFINED__ - -/* interface IBlockingLock */ -/* [uuid][object] */ - - -EXTERN_C const IID IID_IBlockingLock; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("30f3d47a-6447-11d1-8e3c-00c04fb9386d") - IBlockingLock : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Lock( - /* [in] */ DWORD dwTimeout) = 0; - - virtual HRESULT STDMETHODCALLTYPE Unlock( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IBlockingLockVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IBlockingLock * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IBlockingLock * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IBlockingLock * This); - - HRESULT ( STDMETHODCALLTYPE *Lock )( - __RPC__in IBlockingLock * This, - /* [in] */ DWORD dwTimeout); - - HRESULT ( STDMETHODCALLTYPE *Unlock )( - __RPC__in IBlockingLock * This); - - END_INTERFACE - } IBlockingLockVtbl; - - interface IBlockingLock - { - CONST_VTBL struct IBlockingLockVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IBlockingLock_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IBlockingLock_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IBlockingLock_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IBlockingLock_Lock(This,dwTimeout) \ - ( (This)->lpVtbl -> Lock(This,dwTimeout) ) - -#define IBlockingLock_Unlock(This) \ - ( (This)->lpVtbl -> Unlock(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IBlockingLock_INTERFACE_DEFINED__ */ - - -#ifndef __ITimeAndNoticeControl_INTERFACE_DEFINED__ -#define __ITimeAndNoticeControl_INTERFACE_DEFINED__ - -/* interface ITimeAndNoticeControl */ -/* [uuid][object] */ - - -EXTERN_C const IID IID_ITimeAndNoticeControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4") - ITimeAndNoticeControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SuppressChanges( - /* [in] */ DWORD res1, - /* [in] */ DWORD res2) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITimeAndNoticeControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ITimeAndNoticeControl * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ITimeAndNoticeControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ITimeAndNoticeControl * This); - - HRESULT ( STDMETHODCALLTYPE *SuppressChanges )( - __RPC__in ITimeAndNoticeControl * This, - /* [in] */ DWORD res1, - /* [in] */ DWORD res2); - - END_INTERFACE - } ITimeAndNoticeControlVtbl; - - interface ITimeAndNoticeControl - { - CONST_VTBL struct ITimeAndNoticeControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITimeAndNoticeControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITimeAndNoticeControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITimeAndNoticeControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITimeAndNoticeControl_SuppressChanges(This,res1,res2) \ - ( (This)->lpVtbl -> SuppressChanges(This,res1,res2) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ITimeAndNoticeControl_INTERFACE_DEFINED__ */ - - -#ifndef __IOplockStorage_INTERFACE_DEFINED__ -#define __IOplockStorage_INTERFACE_DEFINED__ - -/* interface IOplockStorage */ -/* [uuid][object] */ - - -EXTERN_C const IID IID_IOplockStorage; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8d19c834-8879-11d1-83e9-00c04fc2c6d4") - IOplockStorage : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateStorageEx( - /* [in] */ __RPC__in LPCWSTR pwcsName, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD stgfmt, - /* [in] */ DWORD grfAttrs, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt void **ppstgOpen) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenStorageEx( - /* [in] */ __RPC__in LPCWSTR pwcsName, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD stgfmt, - /* [in] */ DWORD grfAttrs, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt void **ppstgOpen) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOplockStorageVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOplockStorage * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOplockStorage * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOplockStorage * This); - - HRESULT ( STDMETHODCALLTYPE *CreateStorageEx )( - __RPC__in IOplockStorage * This, - /* [in] */ __RPC__in LPCWSTR pwcsName, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD stgfmt, - /* [in] */ DWORD grfAttrs, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt void **ppstgOpen); - - HRESULT ( STDMETHODCALLTYPE *OpenStorageEx )( - __RPC__in IOplockStorage * This, - /* [in] */ __RPC__in LPCWSTR pwcsName, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD stgfmt, - /* [in] */ DWORD grfAttrs, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt void **ppstgOpen); - - END_INTERFACE - } IOplockStorageVtbl; - - interface IOplockStorage - { - CONST_VTBL struct IOplockStorageVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOplockStorage_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOplockStorage_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOplockStorage_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOplockStorage_CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) \ - ( (This)->lpVtbl -> CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) ) - -#define IOplockStorage_OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) \ - ( (This)->lpVtbl -> OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOplockStorage_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0082 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0082_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0082_v0_0_s_ifspec; - -#ifndef __IDirectWriterLock_INTERFACE_DEFINED__ -#define __IDirectWriterLock_INTERFACE_DEFINED__ - -/* interface IDirectWriterLock */ -/* [unique][uuid][object] */ - - -EXTERN_C const IID IID_IDirectWriterLock; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0e6d4d92-6738-11cf-9608-00aa00680db4") - IDirectWriterLock : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE WaitForWriteAccess( - /* [in] */ DWORD dwTimeout) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReleaseWriteAccess( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE HaveWriteAccess( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDirectWriterLockVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IDirectWriterLock * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IDirectWriterLock * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IDirectWriterLock * This); - - HRESULT ( STDMETHODCALLTYPE *WaitForWriteAccess )( - __RPC__in IDirectWriterLock * This, - /* [in] */ DWORD dwTimeout); - - HRESULT ( STDMETHODCALLTYPE *ReleaseWriteAccess )( - __RPC__in IDirectWriterLock * This); - - HRESULT ( STDMETHODCALLTYPE *HaveWriteAccess )( - __RPC__in IDirectWriterLock * This); - - END_INTERFACE - } IDirectWriterLockVtbl; - - interface IDirectWriterLock - { - CONST_VTBL struct IDirectWriterLockVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDirectWriterLock_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDirectWriterLock_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDirectWriterLock_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDirectWriterLock_WaitForWriteAccess(This,dwTimeout) \ - ( (This)->lpVtbl -> WaitForWriteAccess(This,dwTimeout) ) - -#define IDirectWriterLock_ReleaseWriteAccess(This) \ - ( (This)->lpVtbl -> ReleaseWriteAccess(This) ) - -#define IDirectWriterLock_HaveWriteAccess(This) \ - ( (This)->lpVtbl -> HaveWriteAccess(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDirectWriterLock_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0083 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0083_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0083_v0_0_s_ifspec; - -#ifndef __IUrlMon_INTERFACE_DEFINED__ -#define __IUrlMon_INTERFACE_DEFINED__ - -/* interface IUrlMon */ -/* [uuid][object] */ - - -EXTERN_C const IID IID_IUrlMon; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000026-0000-0000-C000-000000000046") - IUrlMon : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE AsyncGetClassBits( - /* [in] */ __RPC__in REFCLSID rclsid, - /* [unique][in] */ __RPC__in_opt LPCWSTR pszTYPE, - /* [unique][in] */ __RPC__in_opt LPCWSTR pszExt, - /* [in] */ DWORD dwFileVersionMS, - /* [in] */ DWORD dwFileVersionLS, - /* [unique][in] */ __RPC__in_opt LPCWSTR pszCodeBase, - /* [in] */ __RPC__in_opt IBindCtx *pbc, - /* [in] */ DWORD dwClassContext, - /* [in] */ __RPC__in REFIID riid, - /* [in] */ DWORD flags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IUrlMonVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IUrlMon * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IUrlMon * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IUrlMon * This); - - HRESULT ( STDMETHODCALLTYPE *AsyncGetClassBits )( - __RPC__in IUrlMon * This, - /* [in] */ __RPC__in REFCLSID rclsid, - /* [unique][in] */ __RPC__in_opt LPCWSTR pszTYPE, - /* [unique][in] */ __RPC__in_opt LPCWSTR pszExt, - /* [in] */ DWORD dwFileVersionMS, - /* [in] */ DWORD dwFileVersionLS, - /* [unique][in] */ __RPC__in_opt LPCWSTR pszCodeBase, - /* [in] */ __RPC__in_opt IBindCtx *pbc, - /* [in] */ DWORD dwClassContext, - /* [in] */ __RPC__in REFIID riid, - /* [in] */ DWORD flags); - - END_INTERFACE - } IUrlMonVtbl; - - interface IUrlMon - { - CONST_VTBL struct IUrlMonVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IUrlMon_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IUrlMon_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IUrlMon_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IUrlMon_AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags) \ - ( (This)->lpVtbl -> AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IUrlMon_INTERFACE_DEFINED__ */ - - -#ifndef __IForegroundTransfer_INTERFACE_DEFINED__ -#define __IForegroundTransfer_INTERFACE_DEFINED__ - -/* interface IForegroundTransfer */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IForegroundTransfer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000145-0000-0000-C000-000000000046") - IForegroundTransfer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE AllowForegroundTransfer( - /* [annotation][in] */ - _Reserved_ void *lpvReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IForegroundTransferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IForegroundTransfer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IForegroundTransfer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IForegroundTransfer * This); - - HRESULT ( STDMETHODCALLTYPE *AllowForegroundTransfer )( - IForegroundTransfer * This, - /* [annotation][in] */ - _Reserved_ void *lpvReserved); - - END_INTERFACE - } IForegroundTransferVtbl; - - interface IForegroundTransfer - { - CONST_VTBL struct IForegroundTransferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IForegroundTransfer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IForegroundTransfer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IForegroundTransfer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IForegroundTransfer_AllowForegroundTransfer(This,lpvReserved) \ - ( (This)->lpVtbl -> AllowForegroundTransfer(This,lpvReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IForegroundTransfer_INTERFACE_DEFINED__ */ - - -#ifndef __IThumbnailExtractor_INTERFACE_DEFINED__ -#define __IThumbnailExtractor_INTERFACE_DEFINED__ - -/* interface IThumbnailExtractor */ -/* [object][uuid] */ - - -EXTERN_C const IID IID_IThumbnailExtractor; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("969dc708-5c76-11d1-8d86-0000f804b057") - IThumbnailExtractor : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ExtractThumbnail( - /* [in] */ __RPC__in_opt IStorage *pStg, - /* [in] */ ULONG ulLength, - /* [in] */ ULONG ulHeight, - /* [out] */ __RPC__out ULONG *pulOutputLength, - /* [out] */ __RPC__out ULONG *pulOutputHeight, - /* [out] */ __RPC__deref_out_opt HBITMAP *phOutputBitmap) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnFileUpdated( - /* [in] */ __RPC__in_opt IStorage *pStg) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IThumbnailExtractorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IThumbnailExtractor * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IThumbnailExtractor * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IThumbnailExtractor * This); - - HRESULT ( STDMETHODCALLTYPE *ExtractThumbnail )( - __RPC__in IThumbnailExtractor * This, - /* [in] */ __RPC__in_opt IStorage *pStg, - /* [in] */ ULONG ulLength, - /* [in] */ ULONG ulHeight, - /* [out] */ __RPC__out ULONG *pulOutputLength, - /* [out] */ __RPC__out ULONG *pulOutputHeight, - /* [out] */ __RPC__deref_out_opt HBITMAP *phOutputBitmap); - - HRESULT ( STDMETHODCALLTYPE *OnFileUpdated )( - __RPC__in IThumbnailExtractor * This, - /* [in] */ __RPC__in_opt IStorage *pStg); - - END_INTERFACE - } IThumbnailExtractorVtbl; - - interface IThumbnailExtractor - { - CONST_VTBL struct IThumbnailExtractorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IThumbnailExtractor_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IThumbnailExtractor_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IThumbnailExtractor_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IThumbnailExtractor_ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap) \ - ( (This)->lpVtbl -> ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap) ) - -#define IThumbnailExtractor_OnFileUpdated(This,pStg) \ - ( (This)->lpVtbl -> OnFileUpdated(This,pStg) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IThumbnailExtractor_INTERFACE_DEFINED__ */ - - -#ifndef __IDummyHICONIncluder_INTERFACE_DEFINED__ -#define __IDummyHICONIncluder_INTERFACE_DEFINED__ - -/* interface IDummyHICONIncluder */ -/* [uuid][unique][object] */ - - -EXTERN_C const IID IID_IDummyHICONIncluder; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("947990de-cc28-11d2-a0f7-00805f858fb1") - IDummyHICONIncluder : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Dummy( - /* [in] */ __RPC__in HICON h1, - /* [in] */ __RPC__in HDC h2) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDummyHICONIncluderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IDummyHICONIncluder * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IDummyHICONIncluder * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IDummyHICONIncluder * This); - - HRESULT ( STDMETHODCALLTYPE *Dummy )( - __RPC__in IDummyHICONIncluder * This, - /* [in] */ __RPC__in HICON h1, - /* [in] */ __RPC__in HDC h2); - - END_INTERFACE - } IDummyHICONIncluderVtbl; - - interface IDummyHICONIncluder - { - CONST_VTBL struct IDummyHICONIncluderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDummyHICONIncluder_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDummyHICONIncluder_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDummyHICONIncluder_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDummyHICONIncluder_Dummy(This,h1,h2) \ - ( (This)->lpVtbl -> Dummy(This,h1,h2) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDummyHICONIncluder_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0087 */ -/* [local] */ - -typedef -enum tagApplicationType - { - ServerApplication = 0, - LibraryApplication = ( ServerApplication + 1 ) - } ApplicationType; - -typedef -enum tagShutdownType - { - IdleShutdown = 0, - ForcedShutdown = ( IdleShutdown + 1 ) - } ShutdownType; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0087_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0087_v0_0_s_ifspec; - -#ifndef __IProcessLock_INTERFACE_DEFINED__ -#define __IProcessLock_INTERFACE_DEFINED__ - -/* interface IProcessLock */ -/* [unique][uuid][local][object] */ - - -EXTERN_C const IID IID_IProcessLock; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001d5-0000-0000-C000-000000000046") - IProcessLock : public IUnknown - { - public: - virtual ULONG STDMETHODCALLTYPE AddRefOnProcess( void) = 0; - - virtual ULONG STDMETHODCALLTYPE ReleaseRefOnProcess( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IProcessLockVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IProcessLock * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IProcessLock * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IProcessLock * This); - - ULONG ( STDMETHODCALLTYPE *AddRefOnProcess )( - IProcessLock * This); - - ULONG ( STDMETHODCALLTYPE *ReleaseRefOnProcess )( - IProcessLock * This); - - END_INTERFACE - } IProcessLockVtbl; - - interface IProcessLock - { - CONST_VTBL struct IProcessLockVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IProcessLock_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IProcessLock_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IProcessLock_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IProcessLock_AddRefOnProcess(This) \ - ( (This)->lpVtbl -> AddRefOnProcess(This) ) - -#define IProcessLock_ReleaseRefOnProcess(This) \ - ( (This)->lpVtbl -> ReleaseRefOnProcess(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IProcessLock_INTERFACE_DEFINED__ */ - - -#ifndef __ISurrogateService_INTERFACE_DEFINED__ -#define __ISurrogateService_INTERFACE_DEFINED__ - -/* interface ISurrogateService */ -/* [unique][uuid][local][object] */ - - -EXTERN_C const IID IID_ISurrogateService; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001d4-0000-0000-C000-000000000046") - ISurrogateService : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Init( - /* [annotation][in] */ - _In_ REFGUID rguidProcessID, - /* [annotation][in] */ - _In_ IProcessLock *pProcessLock, - /* [annotation][out] */ - _Out_ BOOL *pfApplicationAware) = 0; - - virtual HRESULT STDMETHODCALLTYPE ApplicationLaunch( - /* [annotation][in] */ - _In_ REFGUID rguidApplID, - /* [annotation][in] */ - _In_ ApplicationType appType) = 0; - - virtual HRESULT STDMETHODCALLTYPE ApplicationFree( - /* [annotation][in] */ - _In_ REFGUID rguidApplID) = 0; - - virtual HRESULT STDMETHODCALLTYPE CatalogRefresh( - /* [annotation][in] */ - _Reserved_ ULONG ulReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE ProcessShutdown( - /* [annotation][in] */ - _In_ ShutdownType shutdownType) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISurrogateServiceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISurrogateService * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISurrogateService * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISurrogateService * This); - - HRESULT ( STDMETHODCALLTYPE *Init )( - ISurrogateService * This, - /* [annotation][in] */ - _In_ REFGUID rguidProcessID, - /* [annotation][in] */ - _In_ IProcessLock *pProcessLock, - /* [annotation][out] */ - _Out_ BOOL *pfApplicationAware); - - HRESULT ( STDMETHODCALLTYPE *ApplicationLaunch )( - ISurrogateService * This, - /* [annotation][in] */ - _In_ REFGUID rguidApplID, - /* [annotation][in] */ - _In_ ApplicationType appType); - - HRESULT ( STDMETHODCALLTYPE *ApplicationFree )( - ISurrogateService * This, - /* [annotation][in] */ - _In_ REFGUID rguidApplID); - - HRESULT ( STDMETHODCALLTYPE *CatalogRefresh )( - ISurrogateService * This, - /* [annotation][in] */ - _Reserved_ ULONG ulReserved); - - HRESULT ( STDMETHODCALLTYPE *ProcessShutdown )( - ISurrogateService * This, - /* [annotation][in] */ - _In_ ShutdownType shutdownType); - - END_INTERFACE - } ISurrogateServiceVtbl; - - interface ISurrogateService - { - CONST_VTBL struct ISurrogateServiceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISurrogateService_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISurrogateService_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISurrogateService_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISurrogateService_Init(This,rguidProcessID,pProcessLock,pfApplicationAware) \ - ( (This)->lpVtbl -> Init(This,rguidProcessID,pProcessLock,pfApplicationAware) ) - -#define ISurrogateService_ApplicationLaunch(This,rguidApplID,appType) \ - ( (This)->lpVtbl -> ApplicationLaunch(This,rguidApplID,appType) ) - -#define ISurrogateService_ApplicationFree(This,rguidApplID) \ - ( (This)->lpVtbl -> ApplicationFree(This,rguidApplID) ) - -#define ISurrogateService_CatalogRefresh(This,ulReserved) \ - ( (This)->lpVtbl -> CatalogRefresh(This,ulReserved) ) - -#define ISurrogateService_ProcessShutdown(This,shutdownType) \ - ( (This)->lpVtbl -> ProcessShutdown(This,shutdownType) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISurrogateService_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0089 */ -/* [local] */ - -#if (_WIN32_WINNT >= 0x0501 ) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0089_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0089_v0_0_s_ifspec; - -#ifndef __IInitializeSpy_INTERFACE_DEFINED__ -#define __IInitializeSpy_INTERFACE_DEFINED__ - -/* interface IInitializeSpy */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInitializeSpy *LPINITIALIZESPY; - - -EXTERN_C const IID IID_IInitializeSpy; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000034-0000-0000-C000-000000000046") - IInitializeSpy : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE PreInitialize( - /* [annotation][in] */ - _In_ DWORD dwCoInit, - /* [annotation][in] */ - _In_ DWORD dwCurThreadAptRefs) = 0; - - virtual HRESULT STDMETHODCALLTYPE PostInitialize( - /* [annotation][in] */ - _In_ HRESULT hrCoInit, - /* [annotation][in] */ - _In_ DWORD dwCoInit, - /* [annotation][in] */ - _In_ DWORD dwNewThreadAptRefs) = 0; - - virtual HRESULT STDMETHODCALLTYPE PreUninitialize( - /* [annotation][in] */ - _In_ DWORD dwCurThreadAptRefs) = 0; - - virtual HRESULT STDMETHODCALLTYPE PostUninitialize( - /* [annotation][in] */ - _In_ DWORD dwNewThreadAptRefs) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInitializeSpyVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInitializeSpy * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInitializeSpy * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInitializeSpy * This); - - HRESULT ( STDMETHODCALLTYPE *PreInitialize )( - IInitializeSpy * This, - /* [annotation][in] */ - _In_ DWORD dwCoInit, - /* [annotation][in] */ - _In_ DWORD dwCurThreadAptRefs); - - HRESULT ( STDMETHODCALLTYPE *PostInitialize )( - IInitializeSpy * This, - /* [annotation][in] */ - _In_ HRESULT hrCoInit, - /* [annotation][in] */ - _In_ DWORD dwCoInit, - /* [annotation][in] */ - _In_ DWORD dwNewThreadAptRefs); - - HRESULT ( STDMETHODCALLTYPE *PreUninitialize )( - IInitializeSpy * This, - /* [annotation][in] */ - _In_ DWORD dwCurThreadAptRefs); - - HRESULT ( STDMETHODCALLTYPE *PostUninitialize )( - IInitializeSpy * This, - /* [annotation][in] */ - _In_ DWORD dwNewThreadAptRefs); - - END_INTERFACE - } IInitializeSpyVtbl; - - interface IInitializeSpy - { - CONST_VTBL struct IInitializeSpyVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInitializeSpy_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInitializeSpy_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInitializeSpy_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInitializeSpy_PreInitialize(This,dwCoInit,dwCurThreadAptRefs) \ - ( (This)->lpVtbl -> PreInitialize(This,dwCoInit,dwCurThreadAptRefs) ) - -#define IInitializeSpy_PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs) \ - ( (This)->lpVtbl -> PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs) ) - -#define IInitializeSpy_PreUninitialize(This,dwCurThreadAptRefs) \ - ( (This)->lpVtbl -> PreUninitialize(This,dwCurThreadAptRefs) ) - -#define IInitializeSpy_PostUninitialize(This,dwNewThreadAptRefs) \ - ( (This)->lpVtbl -> PostUninitialize(This,dwNewThreadAptRefs) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInitializeSpy_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0090 */ -/* [local] */ - -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0090_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0090_v0_0_s_ifspec; - -#ifndef __IApartmentShutdown_INTERFACE_DEFINED__ -#define __IApartmentShutdown_INTERFACE_DEFINED__ - -/* interface IApartmentShutdown */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IApartmentShutdown; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("A2F05A09-27A2-42B5-BC0E-AC163EF49D9B") - IApartmentShutdown : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE OnUninitialize( - /* [annotation][in] */ - _In_ UINT64 ui64ApartmentIdentifier) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IApartmentShutdownVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IApartmentShutdown * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IApartmentShutdown * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IApartmentShutdown * This); - - void ( STDMETHODCALLTYPE *OnUninitialize )( - IApartmentShutdown * This, - /* [annotation][in] */ - _In_ UINT64 ui64ApartmentIdentifier); - - END_INTERFACE - } IApartmentShutdownVtbl; - - interface IApartmentShutdown - { - CONST_VTBL struct IApartmentShutdownVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IApartmentShutdown_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IApartmentShutdown_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IApartmentShutdown_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IApartmentShutdown_OnUninitialize(This,ui64ApartmentIdentifier) \ - ( (This)->lpVtbl -> OnUninitialize(This,ui64ApartmentIdentifier) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IApartmentShutdown_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidl_0000_0091 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#if ( _MSC_VER >= 800 ) -#if _MSC_VER >= 1200 -#pragma warning(pop) -#else -#pragma warning(default:4201) -#endif -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0091_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0091_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -unsigned long __RPC_USER ASYNC_STGMEDIUM_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in ASYNC_STGMEDIUM * ); -unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in ASYNC_STGMEDIUM * ); -unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out ASYNC_STGMEDIUM * ); -void __RPC_USER ASYNC_STGMEDIUM_UserFree( __RPC__in unsigned long *, __RPC__in ASYNC_STGMEDIUM * ); - -unsigned long __RPC_USER CLIPFORMAT_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in CLIPFORMAT * ); -unsigned char * __RPC_USER CLIPFORMAT_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in CLIPFORMAT * ); -unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out CLIPFORMAT * ); -void __RPC_USER CLIPFORMAT_UserFree( __RPC__in unsigned long *, __RPC__in CLIPFORMAT * ); - -unsigned long __RPC_USER FLAG_STGMEDIUM_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in FLAG_STGMEDIUM * ); -unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in FLAG_STGMEDIUM * ); -unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out FLAG_STGMEDIUM * ); -void __RPC_USER FLAG_STGMEDIUM_UserFree( __RPC__in unsigned long *, __RPC__in FLAG_STGMEDIUM * ); - -unsigned long __RPC_USER HBITMAP_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in HBITMAP * ); -unsigned char * __RPC_USER HBITMAP_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HBITMAP * ); -unsigned char * __RPC_USER HBITMAP_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HBITMAP * ); -void __RPC_USER HBITMAP_UserFree( __RPC__in unsigned long *, __RPC__in HBITMAP * ); - -unsigned long __RPC_USER HDC_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in HDC * ); -unsigned char * __RPC_USER HDC_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HDC * ); -unsigned char * __RPC_USER HDC_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HDC * ); -void __RPC_USER HDC_UserFree( __RPC__in unsigned long *, __RPC__in HDC * ); - -unsigned long __RPC_USER HICON_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in HICON * ); -unsigned char * __RPC_USER HICON_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HICON * ); -unsigned char * __RPC_USER HICON_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HICON * ); -void __RPC_USER HICON_UserFree( __RPC__in unsigned long *, __RPC__in HICON * ); - -unsigned long __RPC_USER SNB_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in SNB * ); -unsigned char * __RPC_USER SNB_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in SNB * ); -unsigned char * __RPC_USER SNB_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out SNB * ); -void __RPC_USER SNB_UserFree( __RPC__in unsigned long *, __RPC__in SNB * ); - -unsigned long __RPC_USER STGMEDIUM_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in STGMEDIUM * ); -unsigned char * __RPC_USER STGMEDIUM_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in STGMEDIUM * ); -unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out STGMEDIUM * ); -void __RPC_USER STGMEDIUM_UserFree( __RPC__in unsigned long *, __RPC__in STGMEDIUM * ); - -unsigned long __RPC_USER ASYNC_STGMEDIUM_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in ASYNC_STGMEDIUM * ); -unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in ASYNC_STGMEDIUM * ); -unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out ASYNC_STGMEDIUM * ); -void __RPC_USER ASYNC_STGMEDIUM_UserFree64( __RPC__in unsigned long *, __RPC__in ASYNC_STGMEDIUM * ); - -unsigned long __RPC_USER CLIPFORMAT_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in CLIPFORMAT * ); -unsigned char * __RPC_USER CLIPFORMAT_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in CLIPFORMAT * ); -unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out CLIPFORMAT * ); -void __RPC_USER CLIPFORMAT_UserFree64( __RPC__in unsigned long *, __RPC__in CLIPFORMAT * ); - -unsigned long __RPC_USER FLAG_STGMEDIUM_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in FLAG_STGMEDIUM * ); -unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in FLAG_STGMEDIUM * ); -unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out FLAG_STGMEDIUM * ); -void __RPC_USER FLAG_STGMEDIUM_UserFree64( __RPC__in unsigned long *, __RPC__in FLAG_STGMEDIUM * ); - -unsigned long __RPC_USER HBITMAP_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in HBITMAP * ); -unsigned char * __RPC_USER HBITMAP_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HBITMAP * ); -unsigned char * __RPC_USER HBITMAP_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HBITMAP * ); -void __RPC_USER HBITMAP_UserFree64( __RPC__in unsigned long *, __RPC__in HBITMAP * ); - -unsigned long __RPC_USER HDC_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in HDC * ); -unsigned char * __RPC_USER HDC_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HDC * ); -unsigned char * __RPC_USER HDC_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HDC * ); -void __RPC_USER HDC_UserFree64( __RPC__in unsigned long *, __RPC__in HDC * ); - -unsigned long __RPC_USER HICON_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in HICON * ); -unsigned char * __RPC_USER HICON_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HICON * ); -unsigned char * __RPC_USER HICON_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HICON * ); -void __RPC_USER HICON_UserFree64( __RPC__in unsigned long *, __RPC__in HICON * ); - -unsigned long __RPC_USER SNB_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in SNB * ); -unsigned char * __RPC_USER SNB_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in SNB * ); -unsigned char * __RPC_USER SNB_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out SNB * ); -void __RPC_USER SNB_UserFree64( __RPC__in unsigned long *, __RPC__in SNB * ); - -unsigned long __RPC_USER STGMEDIUM_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in STGMEDIUM * ); -unsigned char * __RPC_USER STGMEDIUM_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in STGMEDIUM * ); -unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out STGMEDIUM * ); -void __RPC_USER STGMEDIUM_UserFree64( __RPC__in unsigned long *, __RPC__in STGMEDIUM * ); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumUnknown_Next_Proxy( - IEnumUnknown * This, - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][out] */ - _Out_writes_to_(celt,*pceltFetched) IUnknown **rgelt, - /* [annotation][out] */ - _Out_opt_ ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumUnknown_Next_Stub( - __RPC__in IEnumUnknown * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IUnknown **rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumString_Next_Proxy( - IEnumString * This, - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) LPOLESTR *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumString_Next_Stub( - __RPC__in IEnumString * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) LPOLESTR *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - -/* [local] */ HRESULT STDMETHODCALLTYPE ISequentialStream_Read_Proxy( - ISequentialStream * This, - /* [annotation] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbRead); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ISequentialStream_Read_Stub( - __RPC__in ISequentialStream * This, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cb, *pcbRead) byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbRead); - -/* [local] */ HRESULT STDMETHODCALLTYPE ISequentialStream_Write_Proxy( - ISequentialStream * This, - /* [annotation] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbWritten); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ISequentialStream_Write_Stub( - __RPC__in ISequentialStream * This, - /* [size_is][in] */ __RPC__in_ecount_full(cb) const byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbWritten); - -/* [local] */ HRESULT STDMETHODCALLTYPE IStream_Seek_Proxy( - IStream * This, - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *plibNewPosition); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStream_Seek_Stub( - __RPC__in IStream * This, - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [out] */ __RPC__out ULARGE_INTEGER *plibNewPosition); - -/* [local] */ HRESULT STDMETHODCALLTYPE IStream_CopyTo_Proxy( - IStream * This, - /* [annotation][unique][in] */ - _In_ IStream *pstm, - /* [in] */ ULARGE_INTEGER cb, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbRead, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbWritten); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStream_CopyTo_Stub( - __RPC__in IStream * This, - /* [unique][in] */ __RPC__in_opt IStream *pstm, - /* [in] */ ULARGE_INTEGER cb, - /* [out] */ __RPC__out ULARGE_INTEGER *pcbRead, - /* [out] */ __RPC__out ULARGE_INTEGER *pcbWritten); - -/* [local] */ HRESULT STDMETHODCALLTYPE IBindCtx_SetBindOptions_Proxy( - IBindCtx * This, - /* [annotation][in] */ - _In_ BIND_OPTS *pbindopts); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindCtx_SetBindOptions_Stub( - __RPC__in IBindCtx * This, - /* [in] */ __RPC__in BIND_OPTS2 *pbindopts); - -/* [local] */ HRESULT STDMETHODCALLTYPE IBindCtx_GetBindOptions_Proxy( - IBindCtx * This, - /* [annotation][out][in] */ - _Inout_ BIND_OPTS *pbindopts); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindCtx_GetBindOptions_Stub( - __RPC__in IBindCtx * This, - /* [out][in] */ __RPC__inout BIND_OPTS2 *pbindopts); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumMoniker_Next_Proxy( - IEnumMoniker * This, - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) IMoniker **rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumMoniker_Next_Stub( - __RPC__in IEnumMoniker * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IMoniker **rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - -/* [local] */ BOOL STDMETHODCALLTYPE IRunnableObject_IsRunning_Proxy( - IRunnableObject * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IRunnableObject_IsRunning_Stub( - __RPC__in IRunnableObject * This); - -/* [local] */ HRESULT STDMETHODCALLTYPE IMoniker_BindToObject_Proxy( - IMoniker * This, - /* [annotation][unique][in] */ - _In_ IBindCtx *pbc, - /* [annotation][unique][in] */ - _In_opt_ IMoniker *pmkToLeft, - /* [annotation][in] */ - _In_ REFIID riidResult, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppvResult); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IMoniker_BindToObject_Stub( - __RPC__in IMoniker * This, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft, - /* [in] */ __RPC__in REFIID riidResult, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvResult); - -/* [local] */ HRESULT STDMETHODCALLTYPE IMoniker_BindToStorage_Proxy( - IMoniker * This, - /* [annotation][unique][in] */ - _In_ IBindCtx *pbc, - /* [annotation][unique][in] */ - _In_opt_ IMoniker *pmkToLeft, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppvObj); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IMoniker_BindToStorage_Stub( - __RPC__in IMoniker * This, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObj); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Next_Proxy( - IEnumSTATSTG * This, - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) STATSTG *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Next_Stub( - __RPC__in IEnumSTATSTG * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATSTG *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - -/* [local] */ HRESULT STDMETHODCALLTYPE IStorage_OpenStream_Proxy( - IStorage * This, - /* [annotation][string][in] */ - _In_z_ const OLECHAR *pwcsName, - /* [annotation][unique][in] */ - _Reserved_ void *reserved1, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD reserved2, - /* [annotation][out] */ - _Outptr_ IStream **ppstm); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStorage_OpenStream_Stub( - __RPC__in IStorage * This, - /* [string][in] */ __RPC__in_string const OLECHAR *pwcsName, - /* [in] */ ULONG cbReserved1, - /* [size_is][unique][in] */ __RPC__in_ecount_full_opt(cbReserved1) byte *reserved1, - /* [in] */ DWORD grfMode, - /* [in] */ DWORD reserved2, - /* [out] */ __RPC__deref_out_opt IStream **ppstm); - -/* [local] */ HRESULT STDMETHODCALLTYPE IStorage_CopyTo_Proxy( - IStorage * This, - /* [in] */ DWORD ciidExclude, - /* [annotation][size_is][unique][in] */ - _In_reads_opt_(ciidExclude) const IID *rgiidExclude, - /* [annotation][unique][in] */ - _In_opt_ SNB snbExclude, - /* [annotation][unique][in] */ - _In_ IStorage *pstgDest); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStorage_CopyTo_Stub( - __RPC__in IStorage * This, - /* [in] */ DWORD ciidExclude, - /* [size_is][unique][in] */ __RPC__in_ecount_full_opt(ciidExclude) const IID *rgiidExclude, - /* [unique][in] */ __RPC__deref_opt_in_opt SNB snbExclude, - /* [unique][in] */ __RPC__in_opt IStorage *pstgDest); - -/* [local] */ HRESULT STDMETHODCALLTYPE IStorage_EnumElements_Proxy( - IStorage * This, - /* [annotation][in] */ - _Reserved_ DWORD reserved1, - /* [annotation][size_is][unique][in] */ - _Reserved_ void *reserved2, - /* [annotation][in] */ - _Reserved_ DWORD reserved3, - /* [annotation][out] */ - _Outptr_ IEnumSTATSTG **ppenum); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStorage_EnumElements_Stub( - __RPC__in IStorage * This, - /* [in] */ DWORD reserved1, - /* [in] */ ULONG cbReserved2, - /* [size_is][unique][in] */ __RPC__in_ecount_full_opt(cbReserved2) byte *reserved2, - /* [in] */ DWORD reserved3, - /* [out] */ __RPC__deref_out_opt IEnumSTATSTG **ppenum); - -/* [local] */ HRESULT STDMETHODCALLTYPE ILockBytes_ReadAt_Proxy( - ILockBytes * This, - /* [in] */ ULARGE_INTEGER ulOffset, - /* [annotation][length_is][size_is][out] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [in] */ ULONG cb, - /* [annotation][out] */ - _Out_opt_ ULONG *pcbRead); - - -/* [call_as] */ HRESULT __stdcall ILockBytes_ReadAt_Stub( - __RPC__in ILockBytes * This, - /* [in] */ ULARGE_INTEGER ulOffset, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cb, *pcbRead) byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbRead); - -/* [local] */ HRESULT STDMETHODCALLTYPE ILockBytes_WriteAt_Proxy( - ILockBytes * This, - /* [in] */ ULARGE_INTEGER ulOffset, - /* [annotation][size_is][in] */ - _In_reads_bytes_(cb) const void *pv, - /* [in] */ ULONG cb, - /* [annotation][out] */ - _Out_opt_ ULONG *pcbWritten); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ILockBytes_WriteAt_Stub( - __RPC__in ILockBytes * This, - /* [in] */ ULARGE_INTEGER ulOffset, - /* [size_is][in] */ __RPC__in_ecount_full(cb) const byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbWritten); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Next_Proxy( - IEnumFORMATETC * This, - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) FORMATETC *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Next_Stub( - __RPC__in IEnumFORMATETC * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) FORMATETC *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Next_Proxy( - IEnumSTATDATA * This, - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) STATDATA *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Next_Stub( - __RPC__in IEnumSTATDATA * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATDATA *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - -/* [local] */ void STDMETHODCALLTYPE IAdviseSink_OnDataChange_Proxy( - IAdviseSink * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pFormatetc, - /* [annotation][unique][in] */ - _In_ STGMEDIUM *pStgmed); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_OnDataChange_Stub( - __RPC__in IAdviseSink * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pFormatetc, - /* [unique][in] */ __RPC__in_opt ASYNC_STGMEDIUM *pStgmed); - -/* [local] */ void STDMETHODCALLTYPE IAdviseSink_OnViewChange_Proxy( - IAdviseSink * This, - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_OnViewChange_Stub( - __RPC__in IAdviseSink * This, - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex); - -/* [local] */ void STDMETHODCALLTYPE IAdviseSink_OnRename_Proxy( - IAdviseSink * This, - /* [annotation][in] */ - _In_ IMoniker *pmk); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_OnRename_Stub( - __RPC__in IAdviseSink * This, - /* [in] */ __RPC__in_opt IMoniker *pmk); - -/* [local] */ void STDMETHODCALLTYPE IAdviseSink_OnSave_Proxy( - IAdviseSink * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_OnSave_Stub( - __RPC__in IAdviseSink * This); - -/* [local] */ void STDMETHODCALLTYPE IAdviseSink_OnClose_Proxy( - IAdviseSink * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_OnClose_Stub( - __RPC__in IAdviseSink * This); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink_Begin_OnDataChange_Proxy( - AsyncIAdviseSink * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pFormatetc, - /* [annotation][unique][in] */ - _In_ STGMEDIUM *pStgmed); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_OnDataChange_Stub( - __RPC__in AsyncIAdviseSink * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pFormatetc, - /* [unique][in] */ __RPC__in_opt ASYNC_STGMEDIUM *pStgmed); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink_Finish_OnDataChange_Proxy( - AsyncIAdviseSink * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_OnDataChange_Stub( - __RPC__in AsyncIAdviseSink * This); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink_Begin_OnViewChange_Proxy( - AsyncIAdviseSink * This, - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_OnViewChange_Stub( - __RPC__in AsyncIAdviseSink * This, - /* [in] */ DWORD dwAspect, - /* [in] */ LONG lindex); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink_Finish_OnViewChange_Proxy( - AsyncIAdviseSink * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_OnViewChange_Stub( - __RPC__in AsyncIAdviseSink * This); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink_Begin_OnRename_Proxy( - AsyncIAdviseSink * This, - /* [annotation][in] */ - _In_ IMoniker *pmk); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_OnRename_Stub( - __RPC__in AsyncIAdviseSink * This, - /* [in] */ __RPC__in_opt IMoniker *pmk); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink_Finish_OnRename_Proxy( - AsyncIAdviseSink * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_OnRename_Stub( - __RPC__in AsyncIAdviseSink * This); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink_Begin_OnSave_Proxy( - AsyncIAdviseSink * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_OnSave_Stub( - __RPC__in AsyncIAdviseSink * This); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink_Finish_OnSave_Proxy( - AsyncIAdviseSink * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_OnSave_Stub( - __RPC__in AsyncIAdviseSink * This); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink_Begin_OnClose_Proxy( - AsyncIAdviseSink * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_OnClose_Stub( - __RPC__in AsyncIAdviseSink * This); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink_Finish_OnClose_Proxy( - AsyncIAdviseSink * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_OnClose_Stub( - __RPC__in AsyncIAdviseSink * This); - -/* [local] */ void STDMETHODCALLTYPE IAdviseSink2_OnLinkSrcChange_Proxy( - IAdviseSink2 * This, - /* [annotation][unique][in] */ - _In_ IMoniker *pmk); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink2_OnLinkSrcChange_Stub( - __RPC__in IAdviseSink2 * This, - /* [unique][in] */ __RPC__in_opt IMoniker *pmk); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink2_Begin_OnLinkSrcChange_Proxy( - AsyncIAdviseSink2 * This, - /* [annotation][unique][in] */ - _In_ IMoniker *pmk); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Begin_OnLinkSrcChange_Stub( - __RPC__in AsyncIAdviseSink2 * This, - /* [unique][in] */ __RPC__in_opt IMoniker *pmk); - -/* [local] */ void STDMETHODCALLTYPE AsyncIAdviseSink2_Finish_OnLinkSrcChange_Proxy( - AsyncIAdviseSink2 * This); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Finish_OnLinkSrcChange_Stub( - __RPC__in AsyncIAdviseSink2 * This); - -/* [local] */ HRESULT STDMETHODCALLTYPE IDataObject_GetData_Proxy( - IDataObject * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pformatetcIn, - /* [annotation][out] */ - _Out_ STGMEDIUM *pmedium); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IDataObject_GetData_Stub( - __RPC__in IDataObject * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetcIn, - /* [out] */ __RPC__out STGMEDIUM *pRemoteMedium); - -/* [local] */ HRESULT STDMETHODCALLTYPE IDataObject_GetDataHere_Proxy( - IDataObject * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pformatetc, - /* [annotation][out][in] */ - _Inout_ STGMEDIUM *pmedium); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IDataObject_GetDataHere_Stub( - __RPC__in IDataObject * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc, - /* [out][in] */ __RPC__inout STGMEDIUM *pRemoteMedium); - -/* [local] */ HRESULT STDMETHODCALLTYPE IDataObject_SetData_Proxy( - IDataObject * This, - /* [annotation][unique][in] */ - _In_ FORMATETC *pformatetc, - /* [annotation][unique][in] */ - _In_ STGMEDIUM *pmedium, - /* [in] */ BOOL fRelease); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IDataObject_SetData_Stub( - __RPC__in IDataObject * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc, - /* [unique][in] */ __RPC__in_opt FLAG_STGMEDIUM *pmedium, - /* [in] */ BOOL fRelease); - -/* [local] */ HRESULT STDMETHODCALLTYPE IFillLockBytes_FillAppend_Proxy( - IFillLockBytes * This, - /* [annotation][size_is][in] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation][out] */ - _Out_ ULONG *pcbWritten); - - -/* [call_as] */ HRESULT __stdcall IFillLockBytes_FillAppend_Stub( - __RPC__in IFillLockBytes * This, - /* [size_is][in] */ __RPC__in_ecount_full(cb) const byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbWritten); - -/* [local] */ HRESULT STDMETHODCALLTYPE IFillLockBytes_FillAt_Proxy( - IFillLockBytes * This, - /* [annotation][in] */ - _In_ ULARGE_INTEGER ulOffset, - /* [annotation][size_is][in] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation][out] */ - _Out_ ULONG *pcbWritten); - - -/* [call_as] */ HRESULT __stdcall IFillLockBytes_FillAt_Stub( - __RPC__in IFillLockBytes * This, - /* [in] */ ULARGE_INTEGER ulOffset, - /* [size_is][in] */ __RPC__in_ecount_full(cb) const byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbWritten); - - - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/custom/winsdk/include/um/ObjIdlbase.h b/src/custom/winsdk/include/um/ObjIdlbase.h deleted file mode 100644 index 43edbef..0000000 --- a/src/custom/winsdk/include/um/ObjIdlbase.h +++ /dev/null @@ -1,7943 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __objidlbase_h__ -#define __objidlbase_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IMarshal_FWD_DEFINED__ -#define __IMarshal_FWD_DEFINED__ -typedef interface IMarshal IMarshal; - -#endif /* __IMarshal_FWD_DEFINED__ */ - - -#ifndef __INoMarshal_FWD_DEFINED__ -#define __INoMarshal_FWD_DEFINED__ -typedef interface INoMarshal INoMarshal; - -#endif /* __INoMarshal_FWD_DEFINED__ */ - - -#ifndef __IAgileObject_FWD_DEFINED__ -#define __IAgileObject_FWD_DEFINED__ -typedef interface IAgileObject IAgileObject; - -#endif /* __IAgileObject_FWD_DEFINED__ */ - - -#ifndef __IActivationFilter_FWD_DEFINED__ -#define __IActivationFilter_FWD_DEFINED__ -typedef interface IActivationFilter IActivationFilter; - -#endif /* __IActivationFilter_FWD_DEFINED__ */ - - -#ifndef __IMarshal2_FWD_DEFINED__ -#define __IMarshal2_FWD_DEFINED__ -typedef interface IMarshal2 IMarshal2; - -#endif /* __IMarshal2_FWD_DEFINED__ */ - - -#ifndef __IMalloc_FWD_DEFINED__ -#define __IMalloc_FWD_DEFINED__ -typedef interface IMalloc IMalloc; - -#endif /* __IMalloc_FWD_DEFINED__ */ - - -#ifndef __IStdMarshalInfo_FWD_DEFINED__ -#define __IStdMarshalInfo_FWD_DEFINED__ -typedef interface IStdMarshalInfo IStdMarshalInfo; - -#endif /* __IStdMarshalInfo_FWD_DEFINED__ */ - - -#ifndef __IExternalConnection_FWD_DEFINED__ -#define __IExternalConnection_FWD_DEFINED__ -typedef interface IExternalConnection IExternalConnection; - -#endif /* __IExternalConnection_FWD_DEFINED__ */ - - -#ifndef __IMultiQI_FWD_DEFINED__ -#define __IMultiQI_FWD_DEFINED__ -typedef interface IMultiQI IMultiQI; - -#endif /* __IMultiQI_FWD_DEFINED__ */ - - -#ifndef __AsyncIMultiQI_FWD_DEFINED__ -#define __AsyncIMultiQI_FWD_DEFINED__ -typedef interface AsyncIMultiQI AsyncIMultiQI; - -#endif /* __AsyncIMultiQI_FWD_DEFINED__ */ - - -#ifndef __IInternalUnknown_FWD_DEFINED__ -#define __IInternalUnknown_FWD_DEFINED__ -typedef interface IInternalUnknown IInternalUnknown; - -#endif /* __IInternalUnknown_FWD_DEFINED__ */ - - -#ifndef __IEnumUnknown_FWD_DEFINED__ -#define __IEnumUnknown_FWD_DEFINED__ -typedef interface IEnumUnknown IEnumUnknown; - -#endif /* __IEnumUnknown_FWD_DEFINED__ */ - - -#ifndef __IEnumString_FWD_DEFINED__ -#define __IEnumString_FWD_DEFINED__ -typedef interface IEnumString IEnumString; - -#endif /* __IEnumString_FWD_DEFINED__ */ - - -#ifndef __ISequentialStream_FWD_DEFINED__ -#define __ISequentialStream_FWD_DEFINED__ -typedef interface ISequentialStream ISequentialStream; - -#endif /* __ISequentialStream_FWD_DEFINED__ */ - - -#ifndef __IStream_FWD_DEFINED__ -#define __IStream_FWD_DEFINED__ -typedef interface IStream IStream; - -#endif /* __IStream_FWD_DEFINED__ */ - - -#ifndef __IRpcChannelBuffer_FWD_DEFINED__ -#define __IRpcChannelBuffer_FWD_DEFINED__ -typedef interface IRpcChannelBuffer IRpcChannelBuffer; - -#endif /* __IRpcChannelBuffer_FWD_DEFINED__ */ - - -#ifndef __IRpcChannelBuffer2_FWD_DEFINED__ -#define __IRpcChannelBuffer2_FWD_DEFINED__ -typedef interface IRpcChannelBuffer2 IRpcChannelBuffer2; - -#endif /* __IRpcChannelBuffer2_FWD_DEFINED__ */ - - -#ifndef __IAsyncRpcChannelBuffer_FWD_DEFINED__ -#define __IAsyncRpcChannelBuffer_FWD_DEFINED__ -typedef interface IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer; - -#endif /* __IAsyncRpcChannelBuffer_FWD_DEFINED__ */ - - -#ifndef __IRpcChannelBuffer3_FWD_DEFINED__ -#define __IRpcChannelBuffer3_FWD_DEFINED__ -typedef interface IRpcChannelBuffer3 IRpcChannelBuffer3; - -#endif /* __IRpcChannelBuffer3_FWD_DEFINED__ */ - - -#ifndef __IRpcSyntaxNegotiate_FWD_DEFINED__ -#define __IRpcSyntaxNegotiate_FWD_DEFINED__ -typedef interface IRpcSyntaxNegotiate IRpcSyntaxNegotiate; - -#endif /* __IRpcSyntaxNegotiate_FWD_DEFINED__ */ - - -#ifndef __IRpcProxyBuffer_FWD_DEFINED__ -#define __IRpcProxyBuffer_FWD_DEFINED__ -typedef interface IRpcProxyBuffer IRpcProxyBuffer; - -#endif /* __IRpcProxyBuffer_FWD_DEFINED__ */ - - -#ifndef __IRpcStubBuffer_FWD_DEFINED__ -#define __IRpcStubBuffer_FWD_DEFINED__ -typedef interface IRpcStubBuffer IRpcStubBuffer; - -#endif /* __IRpcStubBuffer_FWD_DEFINED__ */ - - -#ifndef __IPSFactoryBuffer_FWD_DEFINED__ -#define __IPSFactoryBuffer_FWD_DEFINED__ -typedef interface IPSFactoryBuffer IPSFactoryBuffer; - -#endif /* __IPSFactoryBuffer_FWD_DEFINED__ */ - - -#ifndef __IChannelHook_FWD_DEFINED__ -#define __IChannelHook_FWD_DEFINED__ -typedef interface IChannelHook IChannelHook; - -#endif /* __IChannelHook_FWD_DEFINED__ */ - - -#ifndef __IClientSecurity_FWD_DEFINED__ -#define __IClientSecurity_FWD_DEFINED__ -typedef interface IClientSecurity IClientSecurity; - -#endif /* __IClientSecurity_FWD_DEFINED__ */ - - -#ifndef __IServerSecurity_FWD_DEFINED__ -#define __IServerSecurity_FWD_DEFINED__ -typedef interface IServerSecurity IServerSecurity; - -#endif /* __IServerSecurity_FWD_DEFINED__ */ - - -#ifndef __IRpcOptions_FWD_DEFINED__ -#define __IRpcOptions_FWD_DEFINED__ -typedef interface IRpcOptions IRpcOptions; - -#endif /* __IRpcOptions_FWD_DEFINED__ */ - - -#ifndef __IGlobalOptions_FWD_DEFINED__ -#define __IGlobalOptions_FWD_DEFINED__ -typedef interface IGlobalOptions IGlobalOptions; - -#endif /* __IGlobalOptions_FWD_DEFINED__ */ - - -#ifndef __ISurrogate_FWD_DEFINED__ -#define __ISurrogate_FWD_DEFINED__ -typedef interface ISurrogate ISurrogate; - -#endif /* __ISurrogate_FWD_DEFINED__ */ - - -#ifndef __IGlobalInterfaceTable_FWD_DEFINED__ -#define __IGlobalInterfaceTable_FWD_DEFINED__ -typedef interface IGlobalInterfaceTable IGlobalInterfaceTable; - -#endif /* __IGlobalInterfaceTable_FWD_DEFINED__ */ - - -#ifndef __ISynchronize_FWD_DEFINED__ -#define __ISynchronize_FWD_DEFINED__ -typedef interface ISynchronize ISynchronize; - -#endif /* __ISynchronize_FWD_DEFINED__ */ - - -#ifndef __ISynchronizeHandle_FWD_DEFINED__ -#define __ISynchronizeHandle_FWD_DEFINED__ -typedef interface ISynchronizeHandle ISynchronizeHandle; - -#endif /* __ISynchronizeHandle_FWD_DEFINED__ */ - - -#ifndef __ISynchronizeEvent_FWD_DEFINED__ -#define __ISynchronizeEvent_FWD_DEFINED__ -typedef interface ISynchronizeEvent ISynchronizeEvent; - -#endif /* __ISynchronizeEvent_FWD_DEFINED__ */ - - -#ifndef __ISynchronizeContainer_FWD_DEFINED__ -#define __ISynchronizeContainer_FWD_DEFINED__ -typedef interface ISynchronizeContainer ISynchronizeContainer; - -#endif /* __ISynchronizeContainer_FWD_DEFINED__ */ - - -#ifndef __ISynchronizeMutex_FWD_DEFINED__ -#define __ISynchronizeMutex_FWD_DEFINED__ -typedef interface ISynchronizeMutex ISynchronizeMutex; - -#endif /* __ISynchronizeMutex_FWD_DEFINED__ */ - - -#ifndef __ICancelMethodCalls_FWD_DEFINED__ -#define __ICancelMethodCalls_FWD_DEFINED__ -typedef interface ICancelMethodCalls ICancelMethodCalls; - -#endif /* __ICancelMethodCalls_FWD_DEFINED__ */ - - -#ifndef __IAsyncManager_FWD_DEFINED__ -#define __IAsyncManager_FWD_DEFINED__ -typedef interface IAsyncManager IAsyncManager; - -#endif /* __IAsyncManager_FWD_DEFINED__ */ - - -#ifndef __ICallFactory_FWD_DEFINED__ -#define __ICallFactory_FWD_DEFINED__ -typedef interface ICallFactory ICallFactory; - -#endif /* __ICallFactory_FWD_DEFINED__ */ - - -#ifndef __IRpcHelper_FWD_DEFINED__ -#define __IRpcHelper_FWD_DEFINED__ -typedef interface IRpcHelper IRpcHelper; - -#endif /* __IRpcHelper_FWD_DEFINED__ */ - - -#ifndef __IReleaseMarshalBuffers_FWD_DEFINED__ -#define __IReleaseMarshalBuffers_FWD_DEFINED__ -typedef interface IReleaseMarshalBuffers IReleaseMarshalBuffers; - -#endif /* __IReleaseMarshalBuffers_FWD_DEFINED__ */ - - -#ifndef __IWaitMultiple_FWD_DEFINED__ -#define __IWaitMultiple_FWD_DEFINED__ -typedef interface IWaitMultiple IWaitMultiple; - -#endif /* __IWaitMultiple_FWD_DEFINED__ */ - - -#ifndef __IAddrTrackingControl_FWD_DEFINED__ -#define __IAddrTrackingControl_FWD_DEFINED__ -typedef interface IAddrTrackingControl IAddrTrackingControl; - -#endif /* __IAddrTrackingControl_FWD_DEFINED__ */ - - -#ifndef __IAddrExclusionControl_FWD_DEFINED__ -#define __IAddrExclusionControl_FWD_DEFINED__ -typedef interface IAddrExclusionControl IAddrExclusionControl; - -#endif /* __IAddrExclusionControl_FWD_DEFINED__ */ - - -#ifndef __IPipeByte_FWD_DEFINED__ -#define __IPipeByte_FWD_DEFINED__ -typedef interface IPipeByte IPipeByte; - -#endif /* __IPipeByte_FWD_DEFINED__ */ - - -#ifndef __AsyncIPipeByte_FWD_DEFINED__ -#define __AsyncIPipeByte_FWD_DEFINED__ -typedef interface AsyncIPipeByte AsyncIPipeByte; - -#endif /* __AsyncIPipeByte_FWD_DEFINED__ */ - - -#ifndef __IPipeLong_FWD_DEFINED__ -#define __IPipeLong_FWD_DEFINED__ -typedef interface IPipeLong IPipeLong; - -#endif /* __IPipeLong_FWD_DEFINED__ */ - - -#ifndef __AsyncIPipeLong_FWD_DEFINED__ -#define __AsyncIPipeLong_FWD_DEFINED__ -typedef interface AsyncIPipeLong AsyncIPipeLong; - -#endif /* __AsyncIPipeLong_FWD_DEFINED__ */ - - -#ifndef __IPipeDouble_FWD_DEFINED__ -#define __IPipeDouble_FWD_DEFINED__ -typedef interface IPipeDouble IPipeDouble; - -#endif /* __IPipeDouble_FWD_DEFINED__ */ - - -#ifndef __AsyncIPipeDouble_FWD_DEFINED__ -#define __AsyncIPipeDouble_FWD_DEFINED__ -typedef interface AsyncIPipeDouble AsyncIPipeDouble; - -#endif /* __AsyncIPipeDouble_FWD_DEFINED__ */ - - -#ifndef __IEnumContextProps_FWD_DEFINED__ -#define __IEnumContextProps_FWD_DEFINED__ -typedef interface IEnumContextProps IEnumContextProps; - -#endif /* __IEnumContextProps_FWD_DEFINED__ */ - - -#ifndef __IContext_FWD_DEFINED__ -#define __IContext_FWD_DEFINED__ -typedef interface IContext IContext; - -#endif /* __IContext_FWD_DEFINED__ */ - - -#ifndef __IObjContext_FWD_DEFINED__ -#define __IObjContext_FWD_DEFINED__ -typedef interface IObjContext IObjContext; - -#endif /* __IObjContext_FWD_DEFINED__ */ - - -#ifndef __IComThreadingInfo_FWD_DEFINED__ -#define __IComThreadingInfo_FWD_DEFINED__ -typedef interface IComThreadingInfo IComThreadingInfo; - -#endif /* __IComThreadingInfo_FWD_DEFINED__ */ - - -#ifndef __IProcessInitControl_FWD_DEFINED__ -#define __IProcessInitControl_FWD_DEFINED__ -typedef interface IProcessInitControl IProcessInitControl; - -#endif /* __IProcessInitControl_FWD_DEFINED__ */ - - -#ifndef __IFastRundown_FWD_DEFINED__ -#define __IFastRundown_FWD_DEFINED__ -typedef interface IFastRundown IFastRundown; - -#endif /* __IFastRundown_FWD_DEFINED__ */ - - -#ifndef __IMarshalingStream_FWD_DEFINED__ -#define __IMarshalingStream_FWD_DEFINED__ -typedef interface IMarshalingStream IMarshalingStream; - -#endif /* __IMarshalingStream_FWD_DEFINED__ */ - - -#ifndef __IAgileReference_FWD_DEFINED__ -#define __IAgileReference_FWD_DEFINED__ -typedef interface IAgileReference IAgileReference; - -#endif /* __IAgileReference_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "unknwnbase.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_objidlbase_0000_0000 */ -/* [local] */ - -#include -//+------------------------------------------------------------------------- -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -//-------------------------------------------------------------------------- -#if(NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0600 -#endif -#if(NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0502 -#endif -#if(NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0501 -#endif -#if(NTDDI_VERSION >= NTDDI_WIN2K && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0500 -#endif - - - -#if ( _MSC_VER >= 800 ) -#if _MSC_VER >= 1200 -#pragma warning(push) -#ifndef _MSC_EXTENSIONS -#pragma warning(disable:4309) /* truncation of constant value */ -#endif -#pragma warning(disable:4820) /* padding added after data member */ -#endif -#pragma warning(disable:4201) -#endif -#if ( _MSC_VER >= 1020 ) -#pragma once -#endif -#include -#ifndef _OBJIDLBASE_ -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -typedef struct _COSERVERINFO - { - DWORD dwReserved1; - LPWSTR pwszName; - COAUTHINFO *pAuthInfo; - DWORD dwReserved2; - } COSERVERINFO; - - - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0000_v0_0_s_ifspec; - -#ifndef __IMarshal_INTERFACE_DEFINED__ -#define __IMarshal_INTERFACE_DEFINED__ - -/* interface IMarshal */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IMarshal *LPMARSHAL; - - -EXTERN_C const IID IID_IMarshal; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000003-0000-0000-C000-000000000046") - IMarshal : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetUnmarshalClass( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ CLSID *pCid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMarshalSizeMax( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ DWORD *pSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE MarshalInterface( - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface( - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppv) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalData( - /* [annotation][unique][in] */ - _In_ IStream *pStm) = 0; - - virtual HRESULT STDMETHODCALLTYPE DisconnectObject( - /* [annotation][in] */ - _In_ DWORD dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMarshalVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMarshal * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMarshal * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMarshal * This); - - HRESULT ( STDMETHODCALLTYPE *GetUnmarshalClass )( - IMarshal * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ CLSID *pCid); - - HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )( - IMarshal * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ DWORD *pSize); - - HRESULT ( STDMETHODCALLTYPE *MarshalInterface )( - IMarshal * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags); - - HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )( - IMarshal * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppv); - - HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )( - IMarshal * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm); - - HRESULT ( STDMETHODCALLTYPE *DisconnectObject )( - IMarshal * This, - /* [annotation][in] */ - _In_ DWORD dwReserved); - - END_INTERFACE - } IMarshalVtbl; - - interface IMarshal - { - CONST_VTBL struct IMarshalVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMarshal_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMarshal_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMarshal_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMarshal_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) \ - ( (This)->lpVtbl -> GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) ) - -#define IMarshal_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) \ - ( (This)->lpVtbl -> GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) ) - -#define IMarshal_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) \ - ( (This)->lpVtbl -> MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) ) - -#define IMarshal_UnmarshalInterface(This,pStm,riid,ppv) \ - ( (This)->lpVtbl -> UnmarshalInterface(This,pStm,riid,ppv) ) - -#define IMarshal_ReleaseMarshalData(This,pStm) \ - ( (This)->lpVtbl -> ReleaseMarshalData(This,pStm) ) - -#define IMarshal_DisconnectObject(This,dwReserved) \ - ( (This)->lpVtbl -> DisconnectObject(This,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMarshal_INTERFACE_DEFINED__ */ - - -#ifndef __INoMarshal_INTERFACE_DEFINED__ -#define __INoMarshal_INTERFACE_DEFINED__ - -/* interface INoMarshal */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_INoMarshal; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ecc8691b-c1db-4dc0-855e-65f6c551af49") - INoMarshal : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct INoMarshalVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - INoMarshal * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - INoMarshal * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - INoMarshal * This); - - END_INTERFACE - } INoMarshalVtbl; - - interface INoMarshal - { - CONST_VTBL struct INoMarshalVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define INoMarshal_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define INoMarshal_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define INoMarshal_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __INoMarshal_INTERFACE_DEFINED__ */ - - -#ifndef __IAgileObject_INTERFACE_DEFINED__ -#define __IAgileObject_INTERFACE_DEFINED__ - -/* interface IAgileObject */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IAgileObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90") - IAgileObject : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct IAgileObjectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAgileObject * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAgileObject * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAgileObject * This); - - END_INTERFACE - } IAgileObjectVtbl; - - interface IAgileObject - { - CONST_VTBL struct IAgileObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAgileObject_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAgileObject_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAgileObject_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAgileObject_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0003 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0003_v0_0_s_ifspec; - -#ifndef __IActivationFilter_INTERFACE_DEFINED__ -#define __IActivationFilter_INTERFACE_DEFINED__ - -/* interface IActivationFilter */ -/* [uuid][object][local] */ - -typedef -enum tagACTIVATIONTYPE - { - ACTIVATIONTYPE_UNCATEGORIZED = 0, - ACTIVATIONTYPE_FROM_MONIKER = 0x1, - ACTIVATIONTYPE_FROM_DATA = 0x2, - ACTIVATIONTYPE_FROM_STORAGE = 0x4, - ACTIVATIONTYPE_FROM_STREAM = 0x8, - ACTIVATIONTYPE_FROM_FILE = 0x10 - } ACTIVATIONTYPE; - - -EXTERN_C const IID IID_IActivationFilter; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000017-0000-0000-C000-000000000046") - IActivationFilter : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE HandleActivation( - /* [in] */ DWORD dwActivationType, - /* [in] */ REFCLSID rclsid, - /* [out] */ CLSID *pReplacementClsId) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IActivationFilterVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IActivationFilter * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IActivationFilter * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IActivationFilter * This); - - HRESULT ( STDMETHODCALLTYPE *HandleActivation )( - IActivationFilter * This, - /* [in] */ DWORD dwActivationType, - /* [in] */ REFCLSID rclsid, - /* [out] */ CLSID *pReplacementClsId); - - END_INTERFACE - } IActivationFilterVtbl; - - interface IActivationFilter - { - CONST_VTBL struct IActivationFilterVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IActivationFilter_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IActivationFilter_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IActivationFilter_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IActivationFilter_HandleActivation(This,dwActivationType,rclsid,pReplacementClsId) \ - ( (This)->lpVtbl -> HandleActivation(This,dwActivationType,rclsid,pReplacementClsId) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IActivationFilter_INTERFACE_DEFINED__ */ - - -#ifndef __IMarshal2_INTERFACE_DEFINED__ -#define __IMarshal2_INTERFACE_DEFINED__ - -/* interface IMarshal2 */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IMarshal2 *LPMARSHAL2; - - -EXTERN_C const IID IID_IMarshal2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001cf-0000-0000-C000-000000000046") - IMarshal2 : public IMarshal - { - public: - }; - - -#else /* C style interface */ - - typedef struct IMarshal2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMarshal2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMarshal2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMarshal2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetUnmarshalClass )( - IMarshal2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ CLSID *pCid); - - HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )( - IMarshal2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags, - /* [annotation][out] */ - _Out_ DWORD *pSize); - - HRESULT ( STDMETHODCALLTYPE *MarshalInterface )( - IMarshal2 * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][in] */ - _In_ DWORD mshlflags); - - HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )( - IMarshal2 * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppv); - - HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )( - IMarshal2 * This, - /* [annotation][unique][in] */ - _In_ IStream *pStm); - - HRESULT ( STDMETHODCALLTYPE *DisconnectObject )( - IMarshal2 * This, - /* [annotation][in] */ - _In_ DWORD dwReserved); - - END_INTERFACE - } IMarshal2Vtbl; - - interface IMarshal2 - { - CONST_VTBL struct IMarshal2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMarshal2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMarshal2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMarshal2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMarshal2_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) \ - ( (This)->lpVtbl -> GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) ) - -#define IMarshal2_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) \ - ( (This)->lpVtbl -> GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) ) - -#define IMarshal2_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) \ - ( (This)->lpVtbl -> MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) ) - -#define IMarshal2_UnmarshalInterface(This,pStm,riid,ppv) \ - ( (This)->lpVtbl -> UnmarshalInterface(This,pStm,riid,ppv) ) - -#define IMarshal2_ReleaseMarshalData(This,pStm) \ - ( (This)->lpVtbl -> ReleaseMarshalData(This,pStm) ) - -#define IMarshal2_DisconnectObject(This,dwReserved) \ - ( (This)->lpVtbl -> DisconnectObject(This,dwReserved) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMarshal2_INTERFACE_DEFINED__ */ - - -#ifndef __IMalloc_INTERFACE_DEFINED__ -#define __IMalloc_INTERFACE_DEFINED__ - -/* interface IMalloc */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IMalloc *LPMALLOC; - - -EXTERN_C const IID IID_IMalloc; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000002-0000-0000-C000-000000000046") - IMalloc : public IUnknown - { - public: - virtual void *STDMETHODCALLTYPE Alloc( - /* [annotation][in] */ - _In_ SIZE_T cb) = 0; - - virtual void *STDMETHODCALLTYPE Realloc( - /* [annotation][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ SIZE_T cb) = 0; - - virtual void STDMETHODCALLTYPE Free( - /* [annotation][in] */ - _In_opt_ void *pv) = 0; - - virtual SIZE_T STDMETHODCALLTYPE GetSize( - /* [annotation][in] */ - _In_opt_ _Post_writable_byte_size_(return) void *pv) = 0; - - virtual int STDMETHODCALLTYPE DidAlloc( - /* [annotation][in] */ - _In_opt_ void *pv) = 0; - - virtual void STDMETHODCALLTYPE HeapMinimize( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMallocVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMalloc * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMalloc * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMalloc * This); - - void *( STDMETHODCALLTYPE *Alloc )( - IMalloc * This, - /* [annotation][in] */ - _In_ SIZE_T cb); - - void *( STDMETHODCALLTYPE *Realloc )( - IMalloc * This, - /* [annotation][in] */ - _In_opt_ void *pv, - /* [annotation][in] */ - _In_ SIZE_T cb); - - void ( STDMETHODCALLTYPE *Free )( - IMalloc * This, - /* [annotation][in] */ - _In_opt_ void *pv); - - SIZE_T ( STDMETHODCALLTYPE *GetSize )( - IMalloc * This, - /* [annotation][in] */ - _In_opt_ _Post_writable_byte_size_(return) void *pv); - - int ( STDMETHODCALLTYPE *DidAlloc )( - IMalloc * This, - /* [annotation][in] */ - _In_opt_ void *pv); - - void ( STDMETHODCALLTYPE *HeapMinimize )( - IMalloc * This); - - END_INTERFACE - } IMallocVtbl; - - interface IMalloc - { - CONST_VTBL struct IMallocVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMalloc_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMalloc_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMalloc_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMalloc_Alloc(This,cb) \ - ( (This)->lpVtbl -> Alloc(This,cb) ) - -#define IMalloc_Realloc(This,pv,cb) \ - ( (This)->lpVtbl -> Realloc(This,pv,cb) ) - -#define IMalloc_Free(This,pv) \ - ( (This)->lpVtbl -> Free(This,pv) ) - -#define IMalloc_GetSize(This,pv) \ - ( (This)->lpVtbl -> GetSize(This,pv) ) - -#define IMalloc_DidAlloc(This,pv) \ - ( (This)->lpVtbl -> DidAlloc(This,pv) ) - -#define IMalloc_HeapMinimize(This) \ - ( (This)->lpVtbl -> HeapMinimize(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMalloc_INTERFACE_DEFINED__ */ - - -#ifndef __IStdMarshalInfo_INTERFACE_DEFINED__ -#define __IStdMarshalInfo_INTERFACE_DEFINED__ - -/* interface IStdMarshalInfo */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IStdMarshalInfo *LPSTDMARSHALINFO; - - -EXTERN_C const IID IID_IStdMarshalInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000018-0000-0000-C000-000000000046") - IStdMarshalInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetClassForHandler( - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][out] */ - _Out_ CLSID *pClsid) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IStdMarshalInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IStdMarshalInfo * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IStdMarshalInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IStdMarshalInfo * This); - - HRESULT ( STDMETHODCALLTYPE *GetClassForHandler )( - IStdMarshalInfo * This, - /* [annotation][in] */ - _In_ DWORD dwDestContext, - /* [annotation][unique][in] */ - _Reserved_ void *pvDestContext, - /* [annotation][out] */ - _Out_ CLSID *pClsid); - - END_INTERFACE - } IStdMarshalInfoVtbl; - - interface IStdMarshalInfo - { - CONST_VTBL struct IStdMarshalInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IStdMarshalInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IStdMarshalInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IStdMarshalInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IStdMarshalInfo_GetClassForHandler(This,dwDestContext,pvDestContext,pClsid) \ - ( (This)->lpVtbl -> GetClassForHandler(This,dwDestContext,pvDestContext,pClsid) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IStdMarshalInfo_INTERFACE_DEFINED__ */ - - -#ifndef __IExternalConnection_INTERFACE_DEFINED__ -#define __IExternalConnection_INTERFACE_DEFINED__ - -/* interface IExternalConnection */ -/* [uuid][local][object] */ - -typedef /* [unique] */ IExternalConnection *LPEXTERNALCONNECTION; - -typedef -enum tagEXTCONN - { - EXTCONN_STRONG = 0x1, - EXTCONN_WEAK = 0x2, - EXTCONN_CALLABLE = 0x4 - } EXTCONN; - - -EXTERN_C const IID IID_IExternalConnection; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000019-0000-0000-C000-000000000046") - IExternalConnection : public IUnknown - { - public: - virtual DWORD STDMETHODCALLTYPE AddConnection( - /* [annotation][in] */ - _In_ DWORD extconn, - /* [annotation][in] */ - _In_ DWORD reserved) = 0; - - virtual DWORD STDMETHODCALLTYPE ReleaseConnection( - /* [annotation][in] */ - _In_ DWORD extconn, - /* [annotation][in] */ - _In_ DWORD reserved, - /* [annotation][in] */ - _In_ BOOL fLastReleaseCloses) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IExternalConnectionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IExternalConnection * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IExternalConnection * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IExternalConnection * This); - - DWORD ( STDMETHODCALLTYPE *AddConnection )( - IExternalConnection * This, - /* [annotation][in] */ - _In_ DWORD extconn, - /* [annotation][in] */ - _In_ DWORD reserved); - - DWORD ( STDMETHODCALLTYPE *ReleaseConnection )( - IExternalConnection * This, - /* [annotation][in] */ - _In_ DWORD extconn, - /* [annotation][in] */ - _In_ DWORD reserved, - /* [annotation][in] */ - _In_ BOOL fLastReleaseCloses); - - END_INTERFACE - } IExternalConnectionVtbl; - - interface IExternalConnection - { - CONST_VTBL struct IExternalConnectionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IExternalConnection_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IExternalConnection_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IExternalConnection_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IExternalConnection_AddConnection(This,extconn,reserved) \ - ( (This)->lpVtbl -> AddConnection(This,extconn,reserved) ) - -#define IExternalConnection_ReleaseConnection(This,extconn,reserved,fLastReleaseCloses) \ - ( (This)->lpVtbl -> ReleaseConnection(This,extconn,reserved,fLastReleaseCloses) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IExternalConnection_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0008 */ -/* [local] */ - -typedef /* [unique] */ __RPC_unique_pointer IMultiQI *LPMULTIQI; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -typedef struct tagMULTI_QI - { - const IID *pIID; - IUnknown *pItf; - HRESULT hr; - } MULTI_QI; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0008_v0_0_s_ifspec; - -#ifndef __IMultiQI_INTERFACE_DEFINED__ -#define __IMultiQI_INTERFACE_DEFINED__ - -/* interface IMultiQI */ -/* [async_uuid][uuid][local][object] */ - - -EXTERN_C const IID IID_IMultiQI; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000020-0000-0000-C000-000000000046") - IMultiQI : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces( - /* [annotation][in] */ - _In_ ULONG cMQIs, - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMultiQIVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMultiQI * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMultiQI * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMultiQI * This); - - HRESULT ( STDMETHODCALLTYPE *QueryMultipleInterfaces )( - IMultiQI * This, - /* [annotation][in] */ - _In_ ULONG cMQIs, - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs); - - END_INTERFACE - } IMultiQIVtbl; - - interface IMultiQI - { - CONST_VTBL struct IMultiQIVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMultiQI_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMultiQI_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMultiQI_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMultiQI_QueryMultipleInterfaces(This,cMQIs,pMQIs) \ - ( (This)->lpVtbl -> QueryMultipleInterfaces(This,cMQIs,pMQIs) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMultiQI_INTERFACE_DEFINED__ */ - - -#ifndef __AsyncIMultiQI_INTERFACE_DEFINED__ -#define __AsyncIMultiQI_INTERFACE_DEFINED__ - -/* interface AsyncIMultiQI */ -/* [uuid][local][object] */ - - -EXTERN_C const IID IID_AsyncIMultiQI; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000e0020-0000-0000-C000-000000000046") - AsyncIMultiQI : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Begin_QueryMultipleInterfaces( - /* [annotation][in] */ - _In_ ULONG cMQIs, - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_QueryMultipleInterfaces( - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIMultiQIVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - AsyncIMultiQI * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - AsyncIMultiQI * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - AsyncIMultiQI * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_QueryMultipleInterfaces )( - AsyncIMultiQI * This, - /* [annotation][in] */ - _In_ ULONG cMQIs, - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs); - - HRESULT ( STDMETHODCALLTYPE *Finish_QueryMultipleInterfaces )( - AsyncIMultiQI * This, - /* [annotation][out][in] */ - _Inout_updates_(cMQIs) MULTI_QI *pMQIs); - - END_INTERFACE - } AsyncIMultiQIVtbl; - - interface AsyncIMultiQI - { - CONST_VTBL struct AsyncIMultiQIVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIMultiQI_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIMultiQI_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIMultiQI_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIMultiQI_Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs) \ - ( (This)->lpVtbl -> Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs) ) - -#define AsyncIMultiQI_Finish_QueryMultipleInterfaces(This,pMQIs) \ - ( (This)->lpVtbl -> Finish_QueryMultipleInterfaces(This,pMQIs) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __AsyncIMultiQI_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0009 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0009_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0009_v0_0_s_ifspec; - -#ifndef __IInternalUnknown_INTERFACE_DEFINED__ -#define __IInternalUnknown_INTERFACE_DEFINED__ - -/* interface IInternalUnknown */ -/* [uuid][local][object] */ - - -EXTERN_C const IID IID_IInternalUnknown; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000021-0000-0000-C000-000000000046") - IInternalUnknown : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE QueryInternalInterface( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppv) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternalUnknownVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternalUnknown * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternalUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternalUnknown * This); - - HRESULT ( STDMETHODCALLTYPE *QueryInternalInterface )( - IInternalUnknown * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppv); - - END_INTERFACE - } IInternalUnknownVtbl; - - interface IInternalUnknown - { - CONST_VTBL struct IInternalUnknownVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternalUnknown_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternalUnknown_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternalUnknown_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternalUnknown_QueryInternalInterface(This,riid,ppv) \ - ( (This)->lpVtbl -> QueryInternalInterface(This,riid,ppv) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternalUnknown_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0010 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0010_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0010_v0_0_s_ifspec; - -#ifndef __IEnumUnknown_INTERFACE_DEFINED__ -#define __IEnumUnknown_INTERFACE_DEFINED__ - -/* interface IEnumUnknown */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumUnknown *LPENUMUNKNOWN; - - -EXTERN_C const IID IID_IEnumUnknown; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000100-0000-0000-C000-000000000046") - IEnumUnknown : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][out] */ - _Out_writes_to_(celt,*pceltFetched) IUnknown **rgelt, - /* [annotation][out] */ - _Out_opt_ ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumUnknown **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumUnknownVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumUnknown * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnumUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnumUnknown * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumUnknown * This, - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][out] */ - _Out_writes_to_(celt,*pceltFetched) IUnknown **rgelt, - /* [annotation][out] */ - _Out_opt_ ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - __RPC__in IEnumUnknown * This, - /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in IEnumUnknown * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - __RPC__in IEnumUnknown * This, - /* [out] */ __RPC__deref_out_opt IEnumUnknown **ppenum); - - END_INTERFACE - } IEnumUnknownVtbl; - - interface IEnumUnknown - { - CONST_VTBL struct IEnumUnknownVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumUnknown_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumUnknown_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumUnknown_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumUnknown_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumUnknown_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumUnknown_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumUnknown_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Proxy( - __RPC__in IEnumUnknown * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IUnknown **rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumUnknown_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumUnknown_INTERFACE_DEFINED__ */ - - -#ifndef __IEnumString_INTERFACE_DEFINED__ -#define __IEnumString_INTERFACE_DEFINED__ - -/* interface IEnumString */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumString *LPENUMSTRING; - - -EXTERN_C const IID IID_IEnumString; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000101-0000-0000-C000-000000000046") - IEnumString : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) LPOLESTR *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumString **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumStringVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumString * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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] */ - _Out_writes_to_(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; - - interface IEnumString - { - CONST_VTBL struct IEnumStringVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumString_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumString_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumString_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumString_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumString_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumString_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumString_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy( - __RPC__in IEnumString * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) LPOLESTR *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumString_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumString_INTERFACE_DEFINED__ */ - - -#ifndef __ISequentialStream_INTERFACE_DEFINED__ -#define __ISequentialStream_INTERFACE_DEFINED__ - -/* interface ISequentialStream */ -/* [unique][uuid][object] */ - - -EXTERN_C const IID IID_ISequentialStream; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0c733a30-2a1c-11ce-ade5-00aa0044773d") - ISequentialStream : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Read( - /* [annotation] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbRead) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Write( - /* [annotation] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbWritten) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISequentialStreamVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ISequentialStream * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ISequentialStream * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ISequentialStream * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )( - ISequentialStream * This, - /* [annotation] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbRead); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )( - ISequentialStream * This, - /* [annotation] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbWritten); - - END_INTERFACE - } ISequentialStreamVtbl; - - interface ISequentialStream - { - CONST_VTBL struct ISequentialStreamVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISequentialStream_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISequentialStream_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISequentialStream_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISequentialStream_Read(This,pv,cb,pcbRead) \ - ( (This)->lpVtbl -> Read(This,pv,cb,pcbRead) ) - -#define ISequentialStream_Write(This,pv,cb,pcbWritten) \ - ( (This)->lpVtbl -> Write(This,pv,cb,pcbWritten) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteRead_Proxy( - __RPC__in ISequentialStream * This, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cb, *pcbRead) byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbRead); - - -void __RPC_STUB ISequentialStream_RemoteRead_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteWrite_Proxy( - __RPC__in ISequentialStream * This, - /* [size_is][in] */ __RPC__in_ecount_full(cb) const byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbWritten); - - -void __RPC_STUB ISequentialStream_RemoteWrite_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISequentialStream_INTERFACE_DEFINED__ */ - - -#ifndef __IStream_INTERFACE_DEFINED__ -#define __IStream_INTERFACE_DEFINED__ - -/* interface IStream */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IStream *LPSTREAM; - -typedef struct tagSTATSTG - { - LPOLESTR pwcsName; - DWORD type; - ULARGE_INTEGER cbSize; - FILETIME mtime; - FILETIME ctime; - FILETIME atime; - DWORD grfMode; - DWORD grfLocksSupported; - CLSID clsid; - DWORD grfStateBits; - DWORD reserved; - } STATSTG; - -typedef -enum tagSTGTY - { - STGTY_STORAGE = 1, - STGTY_STREAM = 2, - STGTY_LOCKBYTES = 3, - STGTY_PROPERTY = 4 - } STGTY; - -typedef -enum tagSTREAM_SEEK - { - STREAM_SEEK_SET = 0, - STREAM_SEEK_CUR = 1, - STREAM_SEEK_END = 2 - } STREAM_SEEK; - -typedef -enum tagLOCKTYPE - { - LOCK_WRITE = 1, - LOCK_EXCLUSIVE = 2, - LOCK_ONLYONCE = 4 - } LOCKTYPE; - - -EXTERN_C const IID IID_IStream; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000000c-0000-0000-C000-000000000046") - IStream : public ISequentialStream - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Seek( - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *plibNewPosition) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetSize( - /* [in] */ ULARGE_INTEGER libNewSize) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE CopyTo( - /* [annotation][unique][in] */ - _In_ IStream *pstm, - /* [in] */ ULARGE_INTEGER cb, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbRead, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbWritten) = 0; - - virtual HRESULT STDMETHODCALLTYPE Commit( - /* [in] */ DWORD grfCommitFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE Revert( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE LockRegion( - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnlockRegion( - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stat( - /* [out] */ __RPC__out STATSTG *pstatstg, - /* [in] */ DWORD grfStatFlag) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IStream **ppstm) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IStreamVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IStream * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IStream * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IStream * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )( - IStream * This, - /* [annotation] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbRead); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )( - IStream * This, - /* [annotation] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _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, - /* [annotation][unique][in] */ - _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; - - interface IStream - { - CONST_VTBL struct IStreamVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IStream_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IStream_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IStream_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IStream_Read(This,pv,cb,pcbRead) \ - ( (This)->lpVtbl -> Read(This,pv,cb,pcbRead) ) - -#define IStream_Write(This,pv,cb,pcbWritten) \ - ( (This)->lpVtbl -> Write(This,pv,cb,pcbWritten) ) - - -#define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) \ - ( (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition) ) - -#define IStream_SetSize(This,libNewSize) \ - ( (This)->lpVtbl -> SetSize(This,libNewSize) ) - -#define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) \ - ( (This)->lpVtbl -> CopyTo(This,pstm,cb,pcbRead,pcbWritten) ) - -#define IStream_Commit(This,grfCommitFlags) \ - ( (This)->lpVtbl -> Commit(This,grfCommitFlags) ) - -#define IStream_Revert(This) \ - ( (This)->lpVtbl -> Revert(This) ) - -#define IStream_LockRegion(This,libOffset,cb,dwLockType) \ - ( (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType) ) - -#define IStream_UnlockRegion(This,libOffset,cb,dwLockType) \ - ( (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType) ) - -#define IStream_Stat(This,pstatstg,grfStatFlag) \ - ( (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag) ) - -#define IStream_Clone(This,ppstm) \ - ( (This)->lpVtbl -> Clone(This,ppstm) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy( - __RPC__in IStream * This, - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [out] */ __RPC__out ULARGE_INTEGER *plibNewPosition); - - -void __RPC_STUB IStream_RemoteSeek_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy( - __RPC__in IStream * This, - /* [unique][in] */ __RPC__in_opt IStream *pstm, - /* [in] */ ULARGE_INTEGER cb, - /* [out] */ __RPC__out ULARGE_INTEGER *pcbRead, - /* [out] */ __RPC__out ULARGE_INTEGER *pcbWritten); - - -void __RPC_STUB IStream_RemoteCopyTo_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IStream_INTERFACE_DEFINED__ */ - - -#ifndef __IRpcChannelBuffer_INTERFACE_DEFINED__ -#define __IRpcChannelBuffer_INTERFACE_DEFINED__ - -/* interface IRpcChannelBuffer */ -/* [uuid][object][local] */ - -typedef ULONG RPCOLEDATAREP; - -typedef struct tagRPCOLEMESSAGE - { - void *reserved1; - RPCOLEDATAREP dataRepresentation; - void *Buffer; - ULONG cbBuffer; - ULONG iMethod; - void *reserved2[ 5 ]; - ULONG rpcFlags; - } RPCOLEMESSAGE; - -typedef RPCOLEMESSAGE *PRPCOLEMESSAGE; - - -EXTERN_C const IID IID_IRpcChannelBuffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D5F56B60-593B-101A-B569-08002B2DBF7A") - IRpcChannelBuffer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetBuffer( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][in] */ - _In_ REFIID riid) = 0; - - virtual HRESULT STDMETHODCALLTYPE SendReceive( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][out] */ - _Out_opt_ ULONG *pStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE FreeBuffer( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDestCtx( - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_result_maybenull_ void **ppvDestContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsConnected( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcChannelBufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcChannelBuffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcChannelBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcChannelBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][in] */ - _In_ REFIID riid); - - HRESULT ( STDMETHODCALLTYPE *SendReceive )( - IRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][out] */ - _Out_opt_ ULONG *pStatus); - - HRESULT ( STDMETHODCALLTYPE *FreeBuffer )( - IRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtx )( - IRpcChannelBuffer * This, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_result_maybenull_ void **ppvDestContext); - - HRESULT ( STDMETHODCALLTYPE *IsConnected )( - IRpcChannelBuffer * This); - - END_INTERFACE - } IRpcChannelBufferVtbl; - - interface IRpcChannelBuffer - { - CONST_VTBL struct IRpcChannelBufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcChannelBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcChannelBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcChannelBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcChannelBuffer_GetBuffer(This,pMessage,riid) \ - ( (This)->lpVtbl -> GetBuffer(This,pMessage,riid) ) - -#define IRpcChannelBuffer_SendReceive(This,pMessage,pStatus) \ - ( (This)->lpVtbl -> SendReceive(This,pMessage,pStatus) ) - -#define IRpcChannelBuffer_FreeBuffer(This,pMessage) \ - ( (This)->lpVtbl -> FreeBuffer(This,pMessage) ) - -#define IRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtx(This,pdwDestContext,ppvDestContext) ) - -#define IRpcChannelBuffer_IsConnected(This) \ - ( (This)->lpVtbl -> IsConnected(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0015 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0015_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0015_v0_0_s_ifspec; - -#ifndef __IRpcChannelBuffer2_INTERFACE_DEFINED__ -#define __IRpcChannelBuffer2_INTERFACE_DEFINED__ - -/* interface IRpcChannelBuffer2 */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IRpcChannelBuffer2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("594f31d0-7f19-11d0-b194-00a0c90dc8bf") - IRpcChannelBuffer2 : public IRpcChannelBuffer - { - public: - virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion( - /* [annotation][out] */ - _Out_ DWORD *pdwVersion) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcChannelBuffer2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcChannelBuffer2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcChannelBuffer2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcChannelBuffer2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IRpcChannelBuffer2 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][in] */ - _In_ REFIID riid); - - HRESULT ( STDMETHODCALLTYPE *SendReceive )( - IRpcChannelBuffer2 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][out] */ - _Out_opt_ ULONG *pStatus); - - HRESULT ( STDMETHODCALLTYPE *FreeBuffer )( - IRpcChannelBuffer2 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtx )( - IRpcChannelBuffer2 * This, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_result_maybenull_ void **ppvDestContext); - - HRESULT ( STDMETHODCALLTYPE *IsConnected )( - IRpcChannelBuffer2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetProtocolVersion )( - IRpcChannelBuffer2 * This, - /* [annotation][out] */ - _Out_ DWORD *pdwVersion); - - END_INTERFACE - } IRpcChannelBuffer2Vtbl; - - interface IRpcChannelBuffer2 - { - CONST_VTBL struct IRpcChannelBuffer2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcChannelBuffer2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcChannelBuffer2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcChannelBuffer2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcChannelBuffer2_GetBuffer(This,pMessage,riid) \ - ( (This)->lpVtbl -> GetBuffer(This,pMessage,riid) ) - -#define IRpcChannelBuffer2_SendReceive(This,pMessage,pStatus) \ - ( (This)->lpVtbl -> SendReceive(This,pMessage,pStatus) ) - -#define IRpcChannelBuffer2_FreeBuffer(This,pMessage) \ - ( (This)->lpVtbl -> FreeBuffer(This,pMessage) ) - -#define IRpcChannelBuffer2_GetDestCtx(This,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtx(This,pdwDestContext,ppvDestContext) ) - -#define IRpcChannelBuffer2_IsConnected(This) \ - ( (This)->lpVtbl -> IsConnected(This) ) - - -#define IRpcChannelBuffer2_GetProtocolVersion(This,pdwVersion) \ - ( (This)->lpVtbl -> GetProtocolVersion(This,pdwVersion) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */ - - -#ifndef __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ -#define __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ - -/* interface IAsyncRpcChannelBuffer */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IAsyncRpcChannelBuffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a5029fb6-3c34-11d1-9c99-00c04fb998aa") - IAsyncRpcChannelBuffer : public IRpcChannelBuffer2 - { - public: - virtual HRESULT STDMETHODCALLTYPE Send( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ ISynchronize *pSync, - /* [annotation][out] */ - _Out_ ULONG *pulStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE Receive( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ ULONG *pulStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx( - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_opt_result_maybenull_ void **ppvDestContext) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAsyncRpcChannelBufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAsyncRpcChannelBuffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAsyncRpcChannelBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAsyncRpcChannelBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][in] */ - _In_ REFIID riid); - - HRESULT ( STDMETHODCALLTYPE *SendReceive )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][out] */ - _Out_opt_ ULONG *pStatus); - - HRESULT ( STDMETHODCALLTYPE *FreeBuffer )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtx )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_result_maybenull_ void **ppvDestContext); - - HRESULT ( STDMETHODCALLTYPE *IsConnected )( - IAsyncRpcChannelBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *GetProtocolVersion )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out] */ - _Out_ DWORD *pdwVersion); - - HRESULT ( STDMETHODCALLTYPE *Send )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ ISynchronize *pSync, - /* [annotation][out] */ - _Out_ ULONG *pulStatus); - - HRESULT ( STDMETHODCALLTYPE *Receive )( - IAsyncRpcChannelBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ ULONG *pulStatus); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtxEx )( - IAsyncRpcChannelBuffer * This, - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_opt_result_maybenull_ void **ppvDestContext); - - END_INTERFACE - } IAsyncRpcChannelBufferVtbl; - - interface IAsyncRpcChannelBuffer - { - CONST_VTBL struct IAsyncRpcChannelBufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAsyncRpcChannelBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAsyncRpcChannelBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAsyncRpcChannelBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAsyncRpcChannelBuffer_GetBuffer(This,pMessage,riid) \ - ( (This)->lpVtbl -> GetBuffer(This,pMessage,riid) ) - -#define IAsyncRpcChannelBuffer_SendReceive(This,pMessage,pStatus) \ - ( (This)->lpVtbl -> SendReceive(This,pMessage,pStatus) ) - -#define IAsyncRpcChannelBuffer_FreeBuffer(This,pMessage) \ - ( (This)->lpVtbl -> FreeBuffer(This,pMessage) ) - -#define IAsyncRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtx(This,pdwDestContext,ppvDestContext) ) - -#define IAsyncRpcChannelBuffer_IsConnected(This) \ - ( (This)->lpVtbl -> IsConnected(This) ) - - -#define IAsyncRpcChannelBuffer_GetProtocolVersion(This,pdwVersion) \ - ( (This)->lpVtbl -> GetProtocolVersion(This,pdwVersion) ) - - -#define IAsyncRpcChannelBuffer_Send(This,pMsg,pSync,pulStatus) \ - ( (This)->lpVtbl -> Send(This,pMsg,pSync,pulStatus) ) - -#define IAsyncRpcChannelBuffer_Receive(This,pMsg,pulStatus) \ - ( (This)->lpVtbl -> Receive(This,pMsg,pulStatus) ) - -#define IAsyncRpcChannelBuffer_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ */ - - -#ifndef __IRpcChannelBuffer3_INTERFACE_DEFINED__ -#define __IRpcChannelBuffer3_INTERFACE_DEFINED__ - -/* interface IRpcChannelBuffer3 */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IRpcChannelBuffer3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("25B15600-0115-11d0-BF0D-00AA00B8DFD2") - IRpcChannelBuffer3 : public IRpcChannelBuffer2 - { - public: - virtual HRESULT STDMETHODCALLTYPE Send( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ ULONG *pulStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE Receive( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ ULONG ulSize, - /* [annotation][out] */ - _Out_ ULONG *pulStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE Cancel( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCallContext( - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **pInterface) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx( - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_opt_result_maybenull_ void **ppvDestContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetState( - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pState) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterAsync( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ IAsyncManager *pAsyncMgr) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcChannelBuffer3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcChannelBuffer3 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcChannelBuffer3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcChannelBuffer3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][in] */ - _In_ REFIID riid); - - HRESULT ( STDMETHODCALLTYPE *SendReceive )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage, - /* [annotation][out] */ - _Out_opt_ ULONG *pStatus); - - HRESULT ( STDMETHODCALLTYPE *FreeBuffer )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMessage); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtx )( - IRpcChannelBuffer3 * This, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_result_maybenull_ void **ppvDestContext); - - HRESULT ( STDMETHODCALLTYPE *IsConnected )( - IRpcChannelBuffer3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetProtocolVersion )( - IRpcChannelBuffer3 * This, - /* [annotation][out] */ - _Out_ DWORD *pdwVersion); - - HRESULT ( STDMETHODCALLTYPE *Send )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ ULONG *pulStatus); - - HRESULT ( STDMETHODCALLTYPE *Receive )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ ULONG ulSize, - /* [annotation][out] */ - _Out_ ULONG *pulStatus); - - HRESULT ( STDMETHODCALLTYPE *Cancel )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg); - - HRESULT ( STDMETHODCALLTYPE *GetCallContext )( - IRpcChannelBuffer3 * This, - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **pInterface); - - HRESULT ( STDMETHODCALLTYPE *GetDestCtxEx )( - IRpcChannelBuffer3 * This, - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwDestContext, - /* [annotation][out] */ - _Outptr_opt_result_maybenull_ void **ppvDestContext); - - HRESULT ( STDMETHODCALLTYPE *GetState )( - IRpcChannelBuffer3 * This, - /* [annotation][in] */ - _In_ RPCOLEMESSAGE *pMsg, - /* [annotation][out] */ - _Out_ DWORD *pState); - - HRESULT ( STDMETHODCALLTYPE *RegisterAsync )( - IRpcChannelBuffer3 * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ IAsyncManager *pAsyncMgr); - - END_INTERFACE - } IRpcChannelBuffer3Vtbl; - - interface IRpcChannelBuffer3 - { - CONST_VTBL struct IRpcChannelBuffer3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcChannelBuffer3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcChannelBuffer3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcChannelBuffer3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcChannelBuffer3_GetBuffer(This,pMessage,riid) \ - ( (This)->lpVtbl -> GetBuffer(This,pMessage,riid) ) - -#define IRpcChannelBuffer3_SendReceive(This,pMessage,pStatus) \ - ( (This)->lpVtbl -> SendReceive(This,pMessage,pStatus) ) - -#define IRpcChannelBuffer3_FreeBuffer(This,pMessage) \ - ( (This)->lpVtbl -> FreeBuffer(This,pMessage) ) - -#define IRpcChannelBuffer3_GetDestCtx(This,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtx(This,pdwDestContext,ppvDestContext) ) - -#define IRpcChannelBuffer3_IsConnected(This) \ - ( (This)->lpVtbl -> IsConnected(This) ) - - -#define IRpcChannelBuffer3_GetProtocolVersion(This,pdwVersion) \ - ( (This)->lpVtbl -> GetProtocolVersion(This,pdwVersion) ) - - -#define IRpcChannelBuffer3_Send(This,pMsg,pulStatus) \ - ( (This)->lpVtbl -> Send(This,pMsg,pulStatus) ) - -#define IRpcChannelBuffer3_Receive(This,pMsg,ulSize,pulStatus) \ - ( (This)->lpVtbl -> Receive(This,pMsg,ulSize,pulStatus) ) - -#define IRpcChannelBuffer3_Cancel(This,pMsg) \ - ( (This)->lpVtbl -> Cancel(This,pMsg) ) - -#define IRpcChannelBuffer3_GetCallContext(This,pMsg,riid,pInterface) \ - ( (This)->lpVtbl -> GetCallContext(This,pMsg,riid,pInterface) ) - -#define IRpcChannelBuffer3_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) \ - ( (This)->lpVtbl -> GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) ) - -#define IRpcChannelBuffer3_GetState(This,pMsg,pState) \ - ( (This)->lpVtbl -> GetState(This,pMsg,pState) ) - -#define IRpcChannelBuffer3_RegisterAsync(This,pMsg,pAsyncMgr) \ - ( (This)->lpVtbl -> RegisterAsync(This,pMsg,pAsyncMgr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */ - - -#ifndef __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ -#define __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ - -/* interface IRpcSyntaxNegotiate */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IRpcSyntaxNegotiate; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("58a08519-24c8-4935-b482-3fd823333a4f") - IRpcSyntaxNegotiate : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE NegotiateSyntax( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcSyntaxNegotiateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcSyntaxNegotiate * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcSyntaxNegotiate * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcSyntaxNegotiate * This); - - HRESULT ( STDMETHODCALLTYPE *NegotiateSyntax )( - IRpcSyntaxNegotiate * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg); - - END_INTERFACE - } IRpcSyntaxNegotiateVtbl; - - interface IRpcSyntaxNegotiate - { - CONST_VTBL struct IRpcSyntaxNegotiateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcSyntaxNegotiate_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcSyntaxNegotiate_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcSyntaxNegotiate_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcSyntaxNegotiate_NegotiateSyntax(This,pMsg) \ - ( (This)->lpVtbl -> NegotiateSyntax(This,pMsg) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ */ - - -#ifndef __IRpcProxyBuffer_INTERFACE_DEFINED__ -#define __IRpcProxyBuffer_INTERFACE_DEFINED__ - -/* interface IRpcProxyBuffer */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IRpcProxyBuffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D5F56A34-593B-101A-B569-08002B2DBF7A") - IRpcProxyBuffer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Connect( - /* [annotation][unique][in] */ - _In_ IRpcChannelBuffer *pRpcChannelBuffer) = 0; - - virtual void STDMETHODCALLTYPE Disconnect( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcProxyBufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcProxyBuffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcProxyBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcProxyBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *Connect )( - IRpcProxyBuffer * This, - /* [annotation][unique][in] */ - _In_ IRpcChannelBuffer *pRpcChannelBuffer); - - void ( STDMETHODCALLTYPE *Disconnect )( - IRpcProxyBuffer * This); - - END_INTERFACE - } IRpcProxyBufferVtbl; - - interface IRpcProxyBuffer - { - CONST_VTBL struct IRpcProxyBufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcProxyBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcProxyBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcProxyBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcProxyBuffer_Connect(This,pRpcChannelBuffer) \ - ( (This)->lpVtbl -> Connect(This,pRpcChannelBuffer) ) - -#define IRpcProxyBuffer_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0020 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0020_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0020_v0_0_s_ifspec; - -#ifndef __IRpcStubBuffer_INTERFACE_DEFINED__ -#define __IRpcStubBuffer_INTERFACE_DEFINED__ - -/* interface IRpcStubBuffer */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IRpcStubBuffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D5F56AFC-593B-101A-B569-08002B2DBF7A") - IRpcStubBuffer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Connect( - /* [annotation][in] */ - _In_ IUnknown *pUnkServer) = 0; - - virtual void STDMETHODCALLTYPE Disconnect( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Invoke( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *_prpcmsg, - /* [annotation][in] */ - _In_ IRpcChannelBuffer *_pRpcChannelBuffer) = 0; - - virtual IRpcStubBuffer *STDMETHODCALLTYPE IsIIDSupported( - /* [annotation][in] */ - _In_ REFIID riid) = 0; - - virtual ULONG STDMETHODCALLTYPE CountRefs( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface( - /* [annotation][out] */ - _Outptr_ void **ppv) = 0; - - virtual void STDMETHODCALLTYPE DebugServerRelease( - /* [annotation][in] */ - _In_ void *pv) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcStubBufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcStubBuffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcStubBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcStubBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *Connect )( - IRpcStubBuffer * This, - /* [annotation][in] */ - _In_ IUnknown *pUnkServer); - - void ( STDMETHODCALLTYPE *Disconnect )( - IRpcStubBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *Invoke )( - IRpcStubBuffer * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *_prpcmsg, - /* [annotation][in] */ - _In_ IRpcChannelBuffer *_pRpcChannelBuffer); - - IRpcStubBuffer *( STDMETHODCALLTYPE *IsIIDSupported )( - IRpcStubBuffer * This, - /* [annotation][in] */ - _In_ REFIID riid); - - ULONG ( STDMETHODCALLTYPE *CountRefs )( - IRpcStubBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *DebugServerQueryInterface )( - IRpcStubBuffer * This, - /* [annotation][out] */ - _Outptr_ void **ppv); - - void ( STDMETHODCALLTYPE *DebugServerRelease )( - IRpcStubBuffer * This, - /* [annotation][in] */ - _In_ void *pv); - - END_INTERFACE - } IRpcStubBufferVtbl; - - interface IRpcStubBuffer - { - CONST_VTBL struct IRpcStubBufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcStubBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcStubBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcStubBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcStubBuffer_Connect(This,pUnkServer) \ - ( (This)->lpVtbl -> Connect(This,pUnkServer) ) - -#define IRpcStubBuffer_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IRpcStubBuffer_Invoke(This,_prpcmsg,_pRpcChannelBuffer) \ - ( (This)->lpVtbl -> Invoke(This,_prpcmsg,_pRpcChannelBuffer) ) - -#define IRpcStubBuffer_IsIIDSupported(This,riid) \ - ( (This)->lpVtbl -> IsIIDSupported(This,riid) ) - -#define IRpcStubBuffer_CountRefs(This) \ - ( (This)->lpVtbl -> CountRefs(This) ) - -#define IRpcStubBuffer_DebugServerQueryInterface(This,ppv) \ - ( (This)->lpVtbl -> DebugServerQueryInterface(This,ppv) ) - -#define IRpcStubBuffer_DebugServerRelease(This,pv) \ - ( (This)->lpVtbl -> DebugServerRelease(This,pv) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcStubBuffer_INTERFACE_DEFINED__ */ - - -#ifndef __IPSFactoryBuffer_INTERFACE_DEFINED__ -#define __IPSFactoryBuffer_INTERFACE_DEFINED__ - -/* interface IPSFactoryBuffer */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IPSFactoryBuffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D5F569D0-593B-101A-B569-08002B2DBF7A") - IPSFactoryBuffer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateProxy( - /* [annotation][in] */ - _In_ IUnknown *pUnkOuter, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ IRpcProxyBuffer **ppProxy, - /* [annotation][out] */ - _Outptr_ void **ppv) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateStub( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pUnkServer, - /* [annotation][out] */ - _Outptr_ IRpcStubBuffer **ppStub) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPSFactoryBufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IPSFactoryBuffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IPSFactoryBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IPSFactoryBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *CreateProxy )( - IPSFactoryBuffer * This, - /* [annotation][in] */ - _In_ IUnknown *pUnkOuter, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ IRpcProxyBuffer **ppProxy, - /* [annotation][out] */ - _Outptr_ void **ppv); - - HRESULT ( STDMETHODCALLTYPE *CreateStub )( - IPSFactoryBuffer * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pUnkServer, - /* [annotation][out] */ - _Outptr_ IRpcStubBuffer **ppStub); - - END_INTERFACE - } IPSFactoryBufferVtbl; - - interface IPSFactoryBuffer - { - CONST_VTBL struct IPSFactoryBufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPSFactoryBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPSFactoryBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPSFactoryBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPSFactoryBuffer_CreateProxy(This,pUnkOuter,riid,ppProxy,ppv) \ - ( (This)->lpVtbl -> CreateProxy(This,pUnkOuter,riid,ppProxy,ppv) ) - -#define IPSFactoryBuffer_CreateStub(This,riid,pUnkServer,ppStub) \ - ( (This)->lpVtbl -> CreateStub(This,riid,pUnkServer,ppStub) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0022 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM -// This interface is only valid on Windows NT 4.0 -typedef struct SChannelHookCallInfo - { - IID iid; - DWORD cbSize; - GUID uCausality; - DWORD dwServerPid; - DWORD iMethod; - void *pObject; - } SChannelHookCallInfo; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0022_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0022_v0_0_s_ifspec; - -#ifndef __IChannelHook_INTERFACE_DEFINED__ -#define __IChannelHook_INTERFACE_DEFINED__ - -/* interface IChannelHook */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IChannelHook; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1008c4a0-7613-11cf-9af1-0020af6e72f4") - IChannelHook : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE ClientGetSize( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Out_ ULONG *pDataSize) = 0; - - virtual void STDMETHODCALLTYPE ClientFillBuffer( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _Inout_ ULONG *pDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer) = 0; - - virtual void STDMETHODCALLTYPE ClientNotify( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ ULONG cbDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ DWORD lDataRep, - /* [annotation][in] */ - _In_ HRESULT hrFault) = 0; - - virtual void STDMETHODCALLTYPE ServerNotify( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ ULONG cbDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ DWORD lDataRep) = 0; - - virtual void STDMETHODCALLTYPE ServerGetSize( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ HRESULT hrFault, - /* [annotation][out] */ - _Out_ ULONG *pDataSize) = 0; - - virtual void STDMETHODCALLTYPE ServerFillBuffer( - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _Inout_ ULONG *pDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ HRESULT hrFault) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IChannelHookVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IChannelHook * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IChannelHook * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IChannelHook * This); - - void ( STDMETHODCALLTYPE *ClientGetSize )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Out_ ULONG *pDataSize); - - void ( STDMETHODCALLTYPE *ClientFillBuffer )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _Inout_ ULONG *pDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer); - - void ( STDMETHODCALLTYPE *ClientNotify )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ ULONG cbDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ DWORD lDataRep, - /* [annotation][in] */ - _In_ HRESULT hrFault); - - void ( STDMETHODCALLTYPE *ServerNotify )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ ULONG cbDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ DWORD lDataRep); - - void ( STDMETHODCALLTYPE *ServerGetSize )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ HRESULT hrFault, - /* [annotation][out] */ - _Out_ ULONG *pDataSize); - - void ( STDMETHODCALLTYPE *ServerFillBuffer )( - IChannelHook * This, - /* [annotation][in] */ - _In_ REFGUID uExtent, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _Inout_ ULONG *pDataSize, - /* [annotation][in] */ - _In_ void *pDataBuffer, - /* [annotation][in] */ - _In_ HRESULT hrFault); - - END_INTERFACE - } IChannelHookVtbl; - - interface IChannelHook - { - CONST_VTBL struct IChannelHookVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IChannelHook_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IChannelHook_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IChannelHook_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IChannelHook_ClientGetSize(This,uExtent,riid,pDataSize) \ - ( (This)->lpVtbl -> ClientGetSize(This,uExtent,riid,pDataSize) ) - -#define IChannelHook_ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer) \ - ( (This)->lpVtbl -> ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer) ) - -#define IChannelHook_ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault) \ - ( (This)->lpVtbl -> ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault) ) - -#define IChannelHook_ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep) \ - ( (This)->lpVtbl -> ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep) ) - -#define IChannelHook_ServerGetSize(This,uExtent,riid,hrFault,pDataSize) \ - ( (This)->lpVtbl -> ServerGetSize(This,uExtent,riid,hrFault,pDataSize) ) - -#define IChannelHook_ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault) \ - ( (This)->lpVtbl -> ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IChannelHook_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0023 */ -/* [local] */ - -#endif //DCOM -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM -// This interface is only valid on Windows NT 4.0 -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0023_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0023_v0_0_s_ifspec; - -#ifndef __IClientSecurity_INTERFACE_DEFINED__ -#define __IClientSecurity_INTERFACE_DEFINED__ - -/* interface IClientSecurity */ -/* [uuid][object][local] */ - -typedef struct tagSOLE_AUTHENTICATION_SERVICE - { - DWORD dwAuthnSvc; - DWORD dwAuthzSvc; - OLECHAR *pPrincipalName; - HRESULT hr; - } SOLE_AUTHENTICATION_SERVICE; - -typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE; - -typedef -enum tagEOLE_AUTHENTICATION_CAPABILITIES - { - EOAC_NONE = 0, - EOAC_MUTUAL_AUTH = 0x1, - EOAC_STATIC_CLOAKING = 0x20, - EOAC_DYNAMIC_CLOAKING = 0x40, - EOAC_ANY_AUTHORITY = 0x80, - EOAC_MAKE_FULLSIC = 0x100, - EOAC_DEFAULT = 0x800, - EOAC_SECURE_REFS = 0x2, - EOAC_ACCESS_CONTROL = 0x4, - EOAC_APPID = 0x8, - EOAC_DYNAMIC = 0x10, - EOAC_REQUIRE_FULLSIC = 0x200, - EOAC_AUTO_IMPERSONATE = 0x400, - EOAC_DISABLE_AAA = 0x1000, - EOAC_NO_CUSTOM_MARSHAL = 0x2000, - EOAC_RESERVED1 = 0x4000 - } EOLE_AUTHENTICATION_CAPABILITIES; - -#define COLE_DEFAULT_PRINCIPAL ( ( OLECHAR * )( INT_PTR )-1 ) - -#define COLE_DEFAULT_AUTHINFO ( ( void * )( INT_PTR )-1 ) - -typedef struct tagSOLE_AUTHENTICATION_INFO - { - DWORD dwAuthnSvc; - DWORD dwAuthzSvc; - void *pAuthInfo; - } SOLE_AUTHENTICATION_INFO; - -typedef struct tagSOLE_AUTHENTICATION_INFO *PSOLE_AUTHENTICATION_INFO; - -typedef struct tagSOLE_AUTHENTICATION_LIST - { - DWORD cAuthInfo; - SOLE_AUTHENTICATION_INFO *aAuthInfo; - } SOLE_AUTHENTICATION_LIST; - -typedef struct tagSOLE_AUTHENTICATION_LIST *PSOLE_AUTHENTICATION_LIST; - - -EXTERN_C const IID IID_IClientSecurity; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000013D-0000-0000-C000-000000000046") - IClientSecurity : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE QueryBlanket( - /* [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] */ - _Outptr_result_maybenull_ void **pAuthInfo, - /* [annotation][out] */ - _Out_opt_ DWORD *pCapabilites) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBlanket( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CopyProxy( - /* [annotation][in] */ - _In_ IUnknown *pProxy, - /* [annotation][out] */ - _Outptr_ IUnknown **ppCopy) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IClientSecurityVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IClientSecurity * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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] */ - _Outptr_result_maybenull_ 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] */ - _Outptr_ IUnknown **ppCopy); - - END_INTERFACE - } IClientSecurityVtbl; - - interface IClientSecurity - { - CONST_VTBL struct IClientSecurityVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IClientSecurity_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IClientSecurity_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IClientSecurity_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IClientSecurity_QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites) \ - ( (This)->lpVtbl -> QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites) ) - -#define IClientSecurity_SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities) \ - ( (This)->lpVtbl -> SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities) ) - -#define IClientSecurity_CopyProxy(This,pProxy,ppCopy) \ - ( (This)->lpVtbl -> CopyProxy(This,pProxy,ppCopy) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IClientSecurity_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0024 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0024_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0024_v0_0_s_ifspec; - -#ifndef __IServerSecurity_INTERFACE_DEFINED__ -#define __IServerSecurity_INTERFACE_DEFINED__ - -/* interface IServerSecurity */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IServerSecurity; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000013E-0000-0000-C000-000000000046") - IServerSecurity : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE QueryBlanket( - /* [annotation][out] */ - _Out_opt_ 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] */ - _Outptr_result_maybenull_ void **pPrivs, - /* [annotation][out][in] */ - _Inout_opt_ DWORD *pCapabilities) = 0; - - virtual HRESULT STDMETHODCALLTYPE ImpersonateClient( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE RevertToSelf( void) = 0; - - virtual BOOL STDMETHODCALLTYPE IsImpersonating( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IServerSecurityVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IServerSecurity * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IServerSecurity * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IServerSecurity * This); - - HRESULT ( STDMETHODCALLTYPE *QueryBlanket )( - IServerSecurity * This, - /* [annotation][out] */ - _Out_opt_ 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] */ - _Outptr_result_maybenull_ void **pPrivs, - /* [annotation][out][in] */ - _Inout_opt_ DWORD *pCapabilities); - - HRESULT ( STDMETHODCALLTYPE *ImpersonateClient )( - IServerSecurity * This); - - HRESULT ( STDMETHODCALLTYPE *RevertToSelf )( - IServerSecurity * This); - - BOOL ( STDMETHODCALLTYPE *IsImpersonating )( - IServerSecurity * This); - - END_INTERFACE - } IServerSecurityVtbl; - - interface IServerSecurity - { - CONST_VTBL struct IServerSecurityVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IServerSecurity_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IServerSecurity_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IServerSecurity_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IServerSecurity_QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities) \ - ( (This)->lpVtbl -> QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities) ) - -#define IServerSecurity_ImpersonateClient(This) \ - ( (This)->lpVtbl -> ImpersonateClient(This) ) - -#define IServerSecurity_RevertToSelf(This) \ - ( (This)->lpVtbl -> RevertToSelf(This) ) - -#define IServerSecurity_IsImpersonating(This) \ - ( (This)->lpVtbl -> IsImpersonating(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IServerSecurity_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0025 */ -/* [local] */ - -typedef -enum tagRPCOPT_PROPERTIES - { - COMBND_RPCTIMEOUT = 0x1, - COMBND_SERVER_LOCALITY = 0x2, - COMBND_RESERVED1 = 0x4, - COMBND_RESERVED2 = 0x5, - COMBND_RESERVED3 = 0x8, - COMBND_RESERVED4 = 0x10 - } RPCOPT_PROPERTIES; - -typedef -enum tagRPCOPT_SERVER_LOCALITY_VALUES - { - SERVER_LOCALITY_PROCESS_LOCAL = 0, - SERVER_LOCALITY_MACHINE_LOCAL = 1, - SERVER_LOCALITY_REMOTE = 2 - } RPCOPT_SERVER_LOCALITY_VALUES; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0025_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0025_v0_0_s_ifspec; - -#ifndef __IRpcOptions_INTERFACE_DEFINED__ -#define __IRpcOptions_INTERFACE_DEFINED__ - -/* interface IRpcOptions */ -/* [uuid][local][object] */ - - -EXTERN_C const IID IID_IRpcOptions; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000144-0000-0000-C000-000000000046") - IRpcOptions : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Set( - /* [annotation][in] */ - _In_ IUnknown *pPrx, - /* [annotation][in] */ - _In_ RPCOPT_PROPERTIES dwProperty, - /* [annotation][in] */ - _In_ ULONG_PTR dwValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE Query( - /* [annotation][in] */ - _In_ IUnknown *pPrx, - /* [annotation][in] */ - _In_ RPCOPT_PROPERTIES dwProperty, - /* [annotation][out] */ - _Out_ ULONG_PTR *pdwValue) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcOptionsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcOptions * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcOptions * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcOptions * This); - - HRESULT ( STDMETHODCALLTYPE *Set )( - IRpcOptions * This, - /* [annotation][in] */ - _In_ IUnknown *pPrx, - /* [annotation][in] */ - _In_ RPCOPT_PROPERTIES dwProperty, - /* [annotation][in] */ - _In_ ULONG_PTR dwValue); - - HRESULT ( STDMETHODCALLTYPE *Query )( - IRpcOptions * This, - /* [annotation][in] */ - _In_ IUnknown *pPrx, - /* [annotation][in] */ - _In_ RPCOPT_PROPERTIES dwProperty, - /* [annotation][out] */ - _Out_ ULONG_PTR *pdwValue); - - END_INTERFACE - } IRpcOptionsVtbl; - - interface IRpcOptions - { - CONST_VTBL struct IRpcOptionsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcOptions_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcOptions_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcOptions_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcOptions_Set(This,pPrx,dwProperty,dwValue) \ - ( (This)->lpVtbl -> Set(This,pPrx,dwProperty,dwValue) ) - -#define IRpcOptions_Query(This,pPrx,dwProperty,pdwValue) \ - ( (This)->lpVtbl -> Query(This,pPrx,dwProperty,pdwValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcOptions_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0026 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -typedef -enum tagGLOBALOPT_PROPERTIES - { - COMGLB_EXCEPTION_HANDLING = 1, - COMGLB_APPID = 2, - COMGLB_RPC_THREADPOOL_SETTING = 3, - COMGLB_RO_SETTINGS = 4, - COMGLB_UNMARSHALING_POLICY = 5, - COMGLB_PROPERTIES_RESERVED1 = 6, - COMGLB_PROPERTIES_RESERVED2 = 7, - COMGLB_PROPERTIES_RESERVED3 = 8 - } GLOBALOPT_PROPERTIES; - -typedef -enum tagGLOBALOPT_EH_VALUES - { - COMGLB_EXCEPTION_HANDLE = 0, - COMGLB_EXCEPTION_DONOT_HANDLE_FATAL = 1, - COMGLB_EXCEPTION_DONOT_HANDLE = COMGLB_EXCEPTION_DONOT_HANDLE_FATAL, - COMGLB_EXCEPTION_DONOT_HANDLE_ANY = 2 - } GLOBALOPT_EH_VALUES; - -typedef -enum tagGLOBALOPT_RPCTP_VALUES - { - COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0, - COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1 - } GLOBALOPT_RPCTP_VALUES; - -typedef -enum tagGLOBALOPT_RO_FLAGS - { - COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 0x1, - COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 0x2, - COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 0x4, - COMGLB_FAST_RUNDOWN = 0x8, - COMGLB_RESERVED1 = 0x10, - COMGLB_RESERVED2 = 0x20, - COMGLB_RESERVED3 = 0x40, - COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 0x80, - COMGLB_RESERVED4 = 0x100, - COMGLB_RESERVED5 = 0x200, - COMGLB_RESERVED6 = 0x400 - } GLOBALOPT_RO_FLAGS; - -typedef -enum tagGLOBALOPT_UNMARSHALING_POLICY_VALUES - { - COMGLB_UNMARSHALING_POLICY_NORMAL = 0, - COMGLB_UNMARSHALING_POLICY_STRONG = 1, - COMGLB_UNMARSHALING_POLICY_HYBRID = 2 - } GLOBALOPT_UNMARSHALING_POLICY_VALUES; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0026_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0026_v0_0_s_ifspec; - -#ifndef __IGlobalOptions_INTERFACE_DEFINED__ -#define __IGlobalOptions_INTERFACE_DEFINED__ - -/* interface IGlobalOptions */ -/* [uuid][unique][local][object] */ - - -EXTERN_C const IID IID_IGlobalOptions; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000015B-0000-0000-C000-000000000046") - IGlobalOptions : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Set( - /* [annotation][in] */ - _In_ GLOBALOPT_PROPERTIES dwProperty, - /* [annotation][in] */ - _In_ ULONG_PTR dwValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE Query( - /* [annotation][in] */ - _In_ GLOBALOPT_PROPERTIES dwProperty, - /* [annotation][out] */ - _Out_ ULONG_PTR *pdwValue) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IGlobalOptionsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IGlobalOptions * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IGlobalOptions * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IGlobalOptions * This); - - HRESULT ( STDMETHODCALLTYPE *Set )( - IGlobalOptions * This, - /* [annotation][in] */ - _In_ GLOBALOPT_PROPERTIES dwProperty, - /* [annotation][in] */ - _In_ ULONG_PTR dwValue); - - HRESULT ( STDMETHODCALLTYPE *Query )( - IGlobalOptions * This, - /* [annotation][in] */ - _In_ GLOBALOPT_PROPERTIES dwProperty, - /* [annotation][out] */ - _Out_ ULONG_PTR *pdwValue); - - END_INTERFACE - } IGlobalOptionsVtbl; - - interface IGlobalOptions - { - CONST_VTBL struct IGlobalOptionsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IGlobalOptions_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IGlobalOptions_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IGlobalOptions_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IGlobalOptions_Set(This,dwProperty,dwValue) \ - ( (This)->lpVtbl -> Set(This,dwProperty,dwValue) ) - -#define IGlobalOptions_Query(This,dwProperty,pdwValue) \ - ( (This)->lpVtbl -> Query(This,dwProperty,pdwValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IGlobalOptions_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0027 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#endif //DCOM -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0027_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0027_v0_0_s_ifspec; - -#ifndef __ISurrogate_INTERFACE_DEFINED__ -#define __ISurrogate_INTERFACE_DEFINED__ - -/* interface ISurrogate */ -/* [object][unique][version][uuid] */ - -typedef /* [unique] */ __RPC_unique_pointer ISurrogate *LPSURROGATE; - - -EXTERN_C const IID IID_ISurrogate; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000022-0000-0000-C000-000000000046") - ISurrogate : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE LoadDllServer( - /* [in] */ __RPC__in REFCLSID Clsid) = 0; - - virtual HRESULT STDMETHODCALLTYPE FreeSurrogate( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISurrogateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ISurrogate * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ISurrogate * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ISurrogate * This); - - HRESULT ( STDMETHODCALLTYPE *LoadDllServer )( - __RPC__in ISurrogate * This, - /* [in] */ __RPC__in REFCLSID Clsid); - - HRESULT ( STDMETHODCALLTYPE *FreeSurrogate )( - __RPC__in ISurrogate * This); - - END_INTERFACE - } ISurrogateVtbl; - - interface ISurrogate - { - CONST_VTBL struct ISurrogateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISurrogate_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISurrogate_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISurrogate_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISurrogate_LoadDllServer(This,Clsid) \ - ( (This)->lpVtbl -> LoadDllServer(This,Clsid) ) - -#define ISurrogate_FreeSurrogate(This) \ - ( (This)->lpVtbl -> FreeSurrogate(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISurrogate_INTERFACE_DEFINED__ */ - - -#ifndef __IGlobalInterfaceTable_INTERFACE_DEFINED__ -#define __IGlobalInterfaceTable_INTERFACE_DEFINED__ - -/* interface IGlobalInterfaceTable */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IGlobalInterfaceTable *LPGLOBALINTERFACETABLE; - - -EXTERN_C const IID IID_IGlobalInterfaceTable; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000146-0000-0000-C000-000000000046") - IGlobalInterfaceTable : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal( - /* [annotation][in] */ - _In_ IUnknown *pUnk, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal( - /* [annotation][in] */ - _In_ DWORD dwCookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal( - /* [annotation][in] */ - _In_ DWORD dwCookie, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppv) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IGlobalInterfaceTableVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IGlobalInterfaceTable * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IGlobalInterfaceTable * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IGlobalInterfaceTable * This); - - HRESULT ( STDMETHODCALLTYPE *RegisterInterfaceInGlobal )( - IGlobalInterfaceTable * This, - /* [annotation][in] */ - _In_ IUnknown *pUnk, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - HRESULT ( STDMETHODCALLTYPE *RevokeInterfaceFromGlobal )( - IGlobalInterfaceTable * This, - /* [annotation][in] */ - _In_ DWORD dwCookie); - - HRESULT ( STDMETHODCALLTYPE *GetInterfaceFromGlobal )( - IGlobalInterfaceTable * This, - /* [annotation][in] */ - _In_ DWORD dwCookie, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppv); - - END_INTERFACE - } IGlobalInterfaceTableVtbl; - - interface IGlobalInterfaceTable - { - CONST_VTBL struct IGlobalInterfaceTableVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IGlobalInterfaceTable_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IGlobalInterfaceTable_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IGlobalInterfaceTable_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IGlobalInterfaceTable_RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie) \ - ( (This)->lpVtbl -> RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie) ) - -#define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(This,dwCookie) \ - ( (This)->lpVtbl -> RevokeInterfaceFromGlobal(This,dwCookie) ) - -#define IGlobalInterfaceTable_GetInterfaceFromGlobal(This,dwCookie,riid,ppv) \ - ( (This)->lpVtbl -> GetInterfaceFromGlobal(This,dwCookie,riid,ppv) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0029 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0029_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0029_v0_0_s_ifspec; - -#ifndef __ISynchronize_INTERFACE_DEFINED__ -#define __ISynchronize_INTERFACE_DEFINED__ - -/* interface ISynchronize */ -/* [uuid][object] */ - - -EXTERN_C const IID IID_ISynchronize; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000030-0000-0000-C000-000000000046") - ISynchronize : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Wait( - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwMilliseconds) = 0; - - virtual HRESULT STDMETHODCALLTYPE Signal( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISynchronizeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in ISynchronize * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in ISynchronize * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in ISynchronize * This); - - HRESULT ( STDMETHODCALLTYPE *Wait )( - __RPC__in ISynchronize * This, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwMilliseconds); - - HRESULT ( STDMETHODCALLTYPE *Signal )( - __RPC__in ISynchronize * This); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in ISynchronize * This); - - END_INTERFACE - } ISynchronizeVtbl; - - interface ISynchronize - { - CONST_VTBL struct ISynchronizeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISynchronize_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISynchronize_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISynchronize_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISynchronize_Wait(This,dwFlags,dwMilliseconds) \ - ( (This)->lpVtbl -> Wait(This,dwFlags,dwMilliseconds) ) - -#define ISynchronize_Signal(This) \ - ( (This)->lpVtbl -> Signal(This) ) - -#define ISynchronize_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISynchronize_INTERFACE_DEFINED__ */ - - -#ifndef __ISynchronizeHandle_INTERFACE_DEFINED__ -#define __ISynchronizeHandle_INTERFACE_DEFINED__ - -/* interface ISynchronizeHandle */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_ISynchronizeHandle; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000031-0000-0000-C000-000000000046") - ISynchronizeHandle : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetHandle( - /* [annotation][out] */ - _Out_ HANDLE *ph) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISynchronizeHandleVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISynchronizeHandle * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISynchronizeHandle * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISynchronizeHandle * This); - - HRESULT ( STDMETHODCALLTYPE *GetHandle )( - ISynchronizeHandle * This, - /* [annotation][out] */ - _Out_ HANDLE *ph); - - END_INTERFACE - } ISynchronizeHandleVtbl; - - interface ISynchronizeHandle - { - CONST_VTBL struct ISynchronizeHandleVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISynchronizeHandle_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISynchronizeHandle_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISynchronizeHandle_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISynchronizeHandle_GetHandle(This,ph) \ - ( (This)->lpVtbl -> GetHandle(This,ph) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISynchronizeHandle_INTERFACE_DEFINED__ */ - - -#ifndef __ISynchronizeEvent_INTERFACE_DEFINED__ -#define __ISynchronizeEvent_INTERFACE_DEFINED__ - -/* interface ISynchronizeEvent */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_ISynchronizeEvent; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000032-0000-0000-C000-000000000046") - ISynchronizeEvent : public ISynchronizeHandle - { - public: - virtual HRESULT STDMETHODCALLTYPE SetEventHandle( - /* [annotation][in] */ - _In_ HANDLE *ph) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISynchronizeEventVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISynchronizeEvent * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISynchronizeEvent * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISynchronizeEvent * This); - - HRESULT ( STDMETHODCALLTYPE *GetHandle )( - ISynchronizeEvent * This, - /* [annotation][out] */ - _Out_ HANDLE *ph); - - HRESULT ( STDMETHODCALLTYPE *SetEventHandle )( - ISynchronizeEvent * This, - /* [annotation][in] */ - _In_ HANDLE *ph); - - END_INTERFACE - } ISynchronizeEventVtbl; - - interface ISynchronizeEvent - { - CONST_VTBL struct ISynchronizeEventVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISynchronizeEvent_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISynchronizeEvent_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISynchronizeEvent_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISynchronizeEvent_GetHandle(This,ph) \ - ( (This)->lpVtbl -> GetHandle(This,ph) ) - - -#define ISynchronizeEvent_SetEventHandle(This,ph) \ - ( (This)->lpVtbl -> SetEventHandle(This,ph) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISynchronizeEvent_INTERFACE_DEFINED__ */ - - -#ifndef __ISynchronizeContainer_INTERFACE_DEFINED__ -#define __ISynchronizeContainer_INTERFACE_DEFINED__ - -/* interface ISynchronizeContainer */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_ISynchronizeContainer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000033-0000-0000-C000-000000000046") - ISynchronizeContainer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE AddSynchronize( - /* [annotation][in] */ - _In_ ISynchronize *pSync) = 0; - - virtual HRESULT STDMETHODCALLTYPE WaitMultiple( - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][in] */ - _In_ DWORD dwTimeOut, - /* [annotation][out] */ - _Outptr_ ISynchronize **ppSync) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISynchronizeContainerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISynchronizeContainer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISynchronizeContainer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISynchronizeContainer * This); - - HRESULT ( STDMETHODCALLTYPE *AddSynchronize )( - ISynchronizeContainer * This, - /* [annotation][in] */ - _In_ ISynchronize *pSync); - - HRESULT ( STDMETHODCALLTYPE *WaitMultiple )( - ISynchronizeContainer * This, - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][in] */ - _In_ DWORD dwTimeOut, - /* [annotation][out] */ - _Outptr_ ISynchronize **ppSync); - - END_INTERFACE - } ISynchronizeContainerVtbl; - - interface ISynchronizeContainer - { - CONST_VTBL struct ISynchronizeContainerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISynchronizeContainer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISynchronizeContainer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISynchronizeContainer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISynchronizeContainer_AddSynchronize(This,pSync) \ - ( (This)->lpVtbl -> AddSynchronize(This,pSync) ) - -#define ISynchronizeContainer_WaitMultiple(This,dwFlags,dwTimeOut,ppSync) \ - ( (This)->lpVtbl -> WaitMultiple(This,dwFlags,dwTimeOut,ppSync) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISynchronizeContainer_INTERFACE_DEFINED__ */ - - -#ifndef __ISynchronizeMutex_INTERFACE_DEFINED__ -#define __ISynchronizeMutex_INTERFACE_DEFINED__ - -/* interface ISynchronizeMutex */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_ISynchronizeMutex; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000025-0000-0000-C000-000000000046") - ISynchronizeMutex : public ISynchronize - { - public: - virtual HRESULT STDMETHODCALLTYPE ReleaseMutex( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISynchronizeMutexVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISynchronizeMutex * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISynchronizeMutex * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISynchronizeMutex * This); - - HRESULT ( STDMETHODCALLTYPE *Wait )( - ISynchronizeMutex * This, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwMilliseconds); - - HRESULT ( STDMETHODCALLTYPE *Signal )( - ISynchronizeMutex * This); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - ISynchronizeMutex * This); - - HRESULT ( STDMETHODCALLTYPE *ReleaseMutex )( - ISynchronizeMutex * This); - - END_INTERFACE - } ISynchronizeMutexVtbl; - - interface ISynchronizeMutex - { - CONST_VTBL struct ISynchronizeMutexVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISynchronizeMutex_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISynchronizeMutex_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISynchronizeMutex_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISynchronizeMutex_Wait(This,dwFlags,dwMilliseconds) \ - ( (This)->lpVtbl -> Wait(This,dwFlags,dwMilliseconds) ) - -#define ISynchronizeMutex_Signal(This) \ - ( (This)->lpVtbl -> Signal(This) ) - -#define ISynchronizeMutex_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - - -#define ISynchronizeMutex_ReleaseMutex(This) \ - ( (This)->lpVtbl -> ReleaseMutex(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISynchronizeMutex_INTERFACE_DEFINED__ */ - - -#ifndef __ICancelMethodCalls_INTERFACE_DEFINED__ -#define __ICancelMethodCalls_INTERFACE_DEFINED__ - -/* interface ICancelMethodCalls */ -/* [uuid][object][local] */ - -typedef /* [unique] */ ICancelMethodCalls *LPCANCELMETHODCALLS; - - -EXTERN_C const IID IID_ICancelMethodCalls; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000029-0000-0000-C000-000000000046") - ICancelMethodCalls : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Cancel( - /* [annotation][in] */ - _In_ ULONG ulSeconds) = 0; - - virtual HRESULT STDMETHODCALLTYPE TestCancel( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICancelMethodCallsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICancelMethodCalls * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICancelMethodCalls * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICancelMethodCalls * This); - - HRESULT ( STDMETHODCALLTYPE *Cancel )( - ICancelMethodCalls * This, - /* [annotation][in] */ - _In_ ULONG ulSeconds); - - HRESULT ( STDMETHODCALLTYPE *TestCancel )( - ICancelMethodCalls * This); - - END_INTERFACE - } ICancelMethodCallsVtbl; - - interface ICancelMethodCalls - { - CONST_VTBL struct ICancelMethodCallsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICancelMethodCalls_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICancelMethodCalls_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICancelMethodCalls_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICancelMethodCalls_Cancel(This,ulSeconds) \ - ( (This)->lpVtbl -> Cancel(This,ulSeconds) ) - -#define ICancelMethodCalls_TestCancel(This) \ - ( (This)->lpVtbl -> TestCancel(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICancelMethodCalls_INTERFACE_DEFINED__ */ - - -#ifndef __IAsyncManager_INTERFACE_DEFINED__ -#define __IAsyncManager_INTERFACE_DEFINED__ - -/* interface IAsyncManager */ -/* [uuid][object][local] */ - -typedef -enum tagDCOM_CALL_STATE - { - DCOM_NONE = 0, - DCOM_CALL_COMPLETE = 0x1, - DCOM_CALL_CANCELED = 0x2 - } DCOM_CALL_STATE; - - -EXTERN_C const IID IID_IAsyncManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000002A-0000-0000-C000-000000000046") - IAsyncManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CompleteCall( - /* [annotation][in] */ - _In_ HRESULT Result) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCallContext( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **pInterface) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetState( - /* [annotation][out] */ - _Out_ ULONG *pulStateFlags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAsyncManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAsyncManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAsyncManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAsyncManager * This); - - HRESULT ( STDMETHODCALLTYPE *CompleteCall )( - IAsyncManager * This, - /* [annotation][in] */ - _In_ HRESULT Result); - - HRESULT ( STDMETHODCALLTYPE *GetCallContext )( - IAsyncManager * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **pInterface); - - HRESULT ( STDMETHODCALLTYPE *GetState )( - IAsyncManager * This, - /* [annotation][out] */ - _Out_ ULONG *pulStateFlags); - - END_INTERFACE - } IAsyncManagerVtbl; - - interface IAsyncManager - { - CONST_VTBL struct IAsyncManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAsyncManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAsyncManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAsyncManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAsyncManager_CompleteCall(This,Result) \ - ( (This)->lpVtbl -> CompleteCall(This,Result) ) - -#define IAsyncManager_GetCallContext(This,riid,pInterface) \ - ( (This)->lpVtbl -> GetCallContext(This,riid,pInterface) ) - -#define IAsyncManager_GetState(This,pulStateFlags) \ - ( (This)->lpVtbl -> GetState(This,pulStateFlags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAsyncManager_INTERFACE_DEFINED__ */ - - -#ifndef __ICallFactory_INTERFACE_DEFINED__ -#define __ICallFactory_INTERFACE_DEFINED__ - -/* interface ICallFactory */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_ICallFactory; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1c733a30-2a1c-11ce-ade5-00aa0044773d") - ICallFactory : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateCall( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_opt_ IUnknown *pCtrlUnk, - /* [annotation][in] */ - _In_ REFIID riid2, - /* [annotation][iid_is][out] */ - _Outptr_ IUnknown **ppv) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICallFactoryVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICallFactory * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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] */ - _Outptr_ IUnknown **ppv); - - END_INTERFACE - } ICallFactoryVtbl; - - interface ICallFactory - { - CONST_VTBL struct ICallFactoryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICallFactory_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICallFactory_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICallFactory_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICallFactory_CreateCall(This,riid,pCtrlUnk,riid2,ppv) \ - ( (This)->lpVtbl -> CreateCall(This,riid,pCtrlUnk,riid2,ppv) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICallFactory_INTERFACE_DEFINED__ */ - - -#ifndef __IRpcHelper_INTERFACE_DEFINED__ -#define __IRpcHelper_INTERFACE_DEFINED__ - -/* interface IRpcHelper */ -/* [object][local][unique][version][uuid] */ - - -EXTERN_C const IID IID_IRpcHelper; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000149-0000-0000-C000-000000000046") - IRpcHelper : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDCOMProtocolVersion( - /* [annotation][out] */ - _Out_ DWORD *pComVersion) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetIIDFromOBJREF( - /* [annotation][in] */ - _In_ void *pObjRef, - /* [annotation][out] */ - _Outptr_ IID **piid) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IRpcHelperVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IRpcHelper * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IRpcHelper * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IRpcHelper * This); - - HRESULT ( STDMETHODCALLTYPE *GetDCOMProtocolVersion )( - IRpcHelper * This, - /* [annotation][out] */ - _Out_ DWORD *pComVersion); - - HRESULT ( STDMETHODCALLTYPE *GetIIDFromOBJREF )( - IRpcHelper * This, - /* [annotation][in] */ - _In_ void *pObjRef, - /* [annotation][out] */ - _Outptr_ IID **piid); - - END_INTERFACE - } IRpcHelperVtbl; - - interface IRpcHelper - { - CONST_VTBL struct IRpcHelperVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IRpcHelper_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IRpcHelper_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IRpcHelper_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IRpcHelper_GetDCOMProtocolVersion(This,pComVersion) \ - ( (This)->lpVtbl -> GetDCOMProtocolVersion(This,pComVersion) ) - -#define IRpcHelper_GetIIDFromOBJREF(This,pObjRef,piid) \ - ( (This)->lpVtbl -> GetIIDFromOBJREF(This,pObjRef,piid) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IRpcHelper_INTERFACE_DEFINED__ */ - - -#ifndef __IReleaseMarshalBuffers_INTERFACE_DEFINED__ -#define __IReleaseMarshalBuffers_INTERFACE_DEFINED__ - -/* interface IReleaseMarshalBuffers */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IReleaseMarshalBuffers; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("eb0cb9e8-7996-11d2-872e-0000f8080859") - IReleaseMarshalBuffers : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalBuffer( - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pChnl) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IReleaseMarshalBuffersVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IReleaseMarshalBuffers * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IReleaseMarshalBuffers * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IReleaseMarshalBuffers * This); - - HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalBuffer )( - IReleaseMarshalBuffers * This, - /* [annotation][out][in] */ - _Inout_ RPCOLEMESSAGE *pMsg, - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pChnl); - - END_INTERFACE - } IReleaseMarshalBuffersVtbl; - - interface IReleaseMarshalBuffers - { - CONST_VTBL struct IReleaseMarshalBuffersVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IReleaseMarshalBuffers_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IReleaseMarshalBuffers_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IReleaseMarshalBuffers_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IReleaseMarshalBuffers_ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl) \ - ( (This)->lpVtbl -> ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IReleaseMarshalBuffers_INTERFACE_DEFINED__ */ - - -#ifndef __IWaitMultiple_INTERFACE_DEFINED__ -#define __IWaitMultiple_INTERFACE_DEFINED__ - -/* interface IWaitMultiple */ -/* [uuid][object][local] */ - - -EXTERN_C const IID IID_IWaitMultiple; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000002B-0000-0000-C000-000000000046") - IWaitMultiple : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE WaitMultiple( - /* [annotation][in] */ - _In_ DWORD timeout, - /* [annotation][out] */ - _Outptr_ ISynchronize **pSync) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddSynchronize( - /* [annotation][in] */ - _In_ ISynchronize *pSync) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IWaitMultipleVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IWaitMultiple * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IWaitMultiple * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IWaitMultiple * This); - - HRESULT ( STDMETHODCALLTYPE *WaitMultiple )( - IWaitMultiple * This, - /* [annotation][in] */ - _In_ DWORD timeout, - /* [annotation][out] */ - _Outptr_ ISynchronize **pSync); - - HRESULT ( STDMETHODCALLTYPE *AddSynchronize )( - IWaitMultiple * This, - /* [annotation][in] */ - _In_ ISynchronize *pSync); - - END_INTERFACE - } IWaitMultipleVtbl; - - interface IWaitMultiple - { - CONST_VTBL struct IWaitMultipleVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IWaitMultiple_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IWaitMultiple_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IWaitMultiple_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IWaitMultiple_WaitMultiple(This,timeout,pSync) \ - ( (This)->lpVtbl -> WaitMultiple(This,timeout,pSync) ) - -#define IWaitMultiple_AddSynchronize(This,pSync) \ - ( (This)->lpVtbl -> AddSynchronize(This,pSync) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IWaitMultiple_INTERFACE_DEFINED__ */ - - -#ifndef __IAddrTrackingControl_INTERFACE_DEFINED__ -#define __IAddrTrackingControl_INTERFACE_DEFINED__ - -/* interface IAddrTrackingControl */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IAddrTrackingControl *LPADDRTRACKINGCONTROL; - - -EXTERN_C const IID IID_IAddrTrackingControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000147-0000-0000-C000-000000000046") - IAddrTrackingControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE EnableCOMDynamicAddrTracking( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE DisableCOMDynamicAddrTracking( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAddrTrackingControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAddrTrackingControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAddrTrackingControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAddrTrackingControl * This); - - HRESULT ( STDMETHODCALLTYPE *EnableCOMDynamicAddrTracking )( - IAddrTrackingControl * This); - - HRESULT ( STDMETHODCALLTYPE *DisableCOMDynamicAddrTracking )( - IAddrTrackingControl * This); - - END_INTERFACE - } IAddrTrackingControlVtbl; - - interface IAddrTrackingControl - { - CONST_VTBL struct IAddrTrackingControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAddrTrackingControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAddrTrackingControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAddrTrackingControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAddrTrackingControl_EnableCOMDynamicAddrTracking(This) \ - ( (This)->lpVtbl -> EnableCOMDynamicAddrTracking(This) ) - -#define IAddrTrackingControl_DisableCOMDynamicAddrTracking(This) \ - ( (This)->lpVtbl -> DisableCOMDynamicAddrTracking(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAddrTrackingControl_INTERFACE_DEFINED__ */ - - -#ifndef __IAddrExclusionControl_INTERFACE_DEFINED__ -#define __IAddrExclusionControl_INTERFACE_DEFINED__ - -/* interface IAddrExclusionControl */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IAddrExclusionControl *LPADDREXCLUSIONCONTROL; - - -EXTERN_C const IID IID_IAddrExclusionControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000148-0000-0000-C000-000000000046") - IAddrExclusionControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCurrentAddrExclusionList( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppEnumerator) = 0; - - virtual HRESULT STDMETHODCALLTYPE UpdateAddrExclusionList( - /* [annotation][in] */ - _In_ IUnknown *pEnumerator) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAddrExclusionControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAddrExclusionControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAddrExclusionControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAddrExclusionControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentAddrExclusionList )( - IAddrExclusionControl * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _Outptr_ void **ppEnumerator); - - HRESULT ( STDMETHODCALLTYPE *UpdateAddrExclusionList )( - IAddrExclusionControl * This, - /* [annotation][in] */ - _In_ IUnknown *pEnumerator); - - END_INTERFACE - } IAddrExclusionControlVtbl; - - interface IAddrExclusionControl - { - CONST_VTBL struct IAddrExclusionControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAddrExclusionControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAddrExclusionControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAddrExclusionControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAddrExclusionControl_GetCurrentAddrExclusionList(This,riid,ppEnumerator) \ - ( (This)->lpVtbl -> GetCurrentAddrExclusionList(This,riid,ppEnumerator) ) - -#define IAddrExclusionControl_UpdateAddrExclusionList(This,pEnumerator) \ - ( (This)->lpVtbl -> UpdateAddrExclusionList(This,pEnumerator) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAddrExclusionControl_INTERFACE_DEFINED__ */ - - -#ifndef __IPipeByte_INTERFACE_DEFINED__ -#define __IPipeByte_INTERFACE_DEFINED__ - -/* interface IPipeByte */ -/* [unique][async_uuid][uuid][object] */ - - -EXTERN_C const IID IID_IPipeByte; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACA-2F86-11d1-8E04-00C04FB9989A") - IPipeByte : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Pull( - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) BYTE *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Push( - /* [size_is][in] */ __RPC__in_ecount_full(cSent) BYTE *buf, - /* [in] */ ULONG cSent) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPipeByteVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPipeByte * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPipeByte * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPipeByte * This); - - HRESULT ( STDMETHODCALLTYPE *Pull )( - __RPC__in IPipeByte * This, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) BYTE *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Push )( - __RPC__in IPipeByte * This, - /* [size_is][in] */ __RPC__in_ecount_full(cSent) BYTE *buf, - /* [in] */ ULONG cSent); - - END_INTERFACE - } IPipeByteVtbl; - - interface IPipeByte - { - CONST_VTBL struct IPipeByteVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPipeByte_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPipeByte_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPipeByte_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPipeByte_Pull(This,buf,cRequest,pcReturned) \ - ( (This)->lpVtbl -> Pull(This,buf,cRequest,pcReturned) ) - -#define IPipeByte_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Push(This,buf,cSent) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPipeByte_INTERFACE_DEFINED__ */ - - -#ifndef __AsyncIPipeByte_INTERFACE_DEFINED__ -#define __AsyncIPipeByte_INTERFACE_DEFINED__ - -/* interface AsyncIPipeByte */ -/* [uuid][unique][object] */ - - -EXTERN_C const IID IID_AsyncIPipeByte; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACB-2F86-11d1-8E04-00C04FB9989A") - AsyncIPipeByte : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Begin_Pull( - /* [in] */ ULONG cRequest) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Pull( - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) BYTE *buf, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Begin_Push( - /* [size_is][in] */ __RPC__in_xcount_full(cSent) BYTE *buf, - /* [in] */ ULONG cSent) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Push( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIPipeByteVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in AsyncIPipeByte * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in AsyncIPipeByte * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in AsyncIPipeByte * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_Pull )( - __RPC__in AsyncIPipeByte * This, - /* [in] */ ULONG cRequest); - - HRESULT ( STDMETHODCALLTYPE *Finish_Pull )( - __RPC__in AsyncIPipeByte * This, - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) BYTE *buf, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Begin_Push )( - __RPC__in AsyncIPipeByte * This, - /* [size_is][in] */ __RPC__in_xcount_full(cSent) BYTE *buf, - /* [in] */ ULONG cSent); - - HRESULT ( STDMETHODCALLTYPE *Finish_Push )( - __RPC__in AsyncIPipeByte * This); - - END_INTERFACE - } AsyncIPipeByteVtbl; - - interface AsyncIPipeByte - { - CONST_VTBL struct AsyncIPipeByteVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIPipeByte_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIPipeByte_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIPipeByte_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIPipeByte_Begin_Pull(This,cRequest) \ - ( (This)->lpVtbl -> Begin_Pull(This,cRequest) ) - -#define AsyncIPipeByte_Finish_Pull(This,buf,pcReturned) \ - ( (This)->lpVtbl -> Finish_Pull(This,buf,pcReturned) ) - -#define AsyncIPipeByte_Begin_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Begin_Push(This,buf,cSent) ) - -#define AsyncIPipeByte_Finish_Push(This) \ - ( (This)->lpVtbl -> Finish_Push(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __AsyncIPipeByte_INTERFACE_DEFINED__ */ - - -#ifndef __IPipeLong_INTERFACE_DEFINED__ -#define __IPipeLong_INTERFACE_DEFINED__ - -/* interface IPipeLong */ -/* [unique][async_uuid][uuid][object] */ - - -EXTERN_C const IID IID_IPipeLong; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACC-2F86-11d1-8E04-00C04FB9989A") - IPipeLong : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Pull( - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) LONG *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Push( - /* [size_is][in] */ __RPC__in_ecount_full(cSent) LONG *buf, - /* [in] */ ULONG cSent) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPipeLongVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPipeLong * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPipeLong * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPipeLong * This); - - HRESULT ( STDMETHODCALLTYPE *Pull )( - __RPC__in IPipeLong * This, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) LONG *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Push )( - __RPC__in IPipeLong * This, - /* [size_is][in] */ __RPC__in_ecount_full(cSent) LONG *buf, - /* [in] */ ULONG cSent); - - END_INTERFACE - } IPipeLongVtbl; - - interface IPipeLong - { - CONST_VTBL struct IPipeLongVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPipeLong_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPipeLong_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPipeLong_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPipeLong_Pull(This,buf,cRequest,pcReturned) \ - ( (This)->lpVtbl -> Pull(This,buf,cRequest,pcReturned) ) - -#define IPipeLong_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Push(This,buf,cSent) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPipeLong_INTERFACE_DEFINED__ */ - - -#ifndef __AsyncIPipeLong_INTERFACE_DEFINED__ -#define __AsyncIPipeLong_INTERFACE_DEFINED__ - -/* interface AsyncIPipeLong */ -/* [uuid][unique][object] */ - - -EXTERN_C const IID IID_AsyncIPipeLong; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACD-2F86-11d1-8E04-00C04FB9989A") - AsyncIPipeLong : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Begin_Pull( - /* [in] */ ULONG cRequest) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Pull( - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) LONG *buf, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Begin_Push( - /* [size_is][in] */ __RPC__in_xcount_full(cSent) LONG *buf, - /* [in] */ ULONG cSent) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Push( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIPipeLongVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in AsyncIPipeLong * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in AsyncIPipeLong * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in AsyncIPipeLong * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_Pull )( - __RPC__in AsyncIPipeLong * This, - /* [in] */ ULONG cRequest); - - HRESULT ( STDMETHODCALLTYPE *Finish_Pull )( - __RPC__in AsyncIPipeLong * This, - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) LONG *buf, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Begin_Push )( - __RPC__in AsyncIPipeLong * This, - /* [size_is][in] */ __RPC__in_xcount_full(cSent) LONG *buf, - /* [in] */ ULONG cSent); - - HRESULT ( STDMETHODCALLTYPE *Finish_Push )( - __RPC__in AsyncIPipeLong * This); - - END_INTERFACE - } AsyncIPipeLongVtbl; - - interface AsyncIPipeLong - { - CONST_VTBL struct AsyncIPipeLongVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIPipeLong_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIPipeLong_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIPipeLong_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIPipeLong_Begin_Pull(This,cRequest) \ - ( (This)->lpVtbl -> Begin_Pull(This,cRequest) ) - -#define AsyncIPipeLong_Finish_Pull(This,buf,pcReturned) \ - ( (This)->lpVtbl -> Finish_Pull(This,buf,pcReturned) ) - -#define AsyncIPipeLong_Begin_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Begin_Push(This,buf,cSent) ) - -#define AsyncIPipeLong_Finish_Push(This) \ - ( (This)->lpVtbl -> Finish_Push(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __AsyncIPipeLong_INTERFACE_DEFINED__ */ - - -#ifndef __IPipeDouble_INTERFACE_DEFINED__ -#define __IPipeDouble_INTERFACE_DEFINED__ - -/* interface IPipeDouble */ -/* [unique][async_uuid][uuid][object] */ - - -EXTERN_C const IID IID_IPipeDouble; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACE-2F86-11d1-8E04-00C04FB9989A") - IPipeDouble : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Pull( - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) DOUBLE *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Push( - /* [size_is][in] */ __RPC__in_ecount_full(cSent) DOUBLE *buf, - /* [in] */ ULONG cSent) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPipeDoubleVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPipeDouble * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPipeDouble * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPipeDouble * This); - - HRESULT ( STDMETHODCALLTYPE *Pull )( - __RPC__in IPipeDouble * This, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cRequest, *pcReturned) DOUBLE *buf, - /* [in] */ ULONG cRequest, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Push )( - __RPC__in IPipeDouble * This, - /* [size_is][in] */ __RPC__in_ecount_full(cSent) DOUBLE *buf, - /* [in] */ ULONG cSent); - - END_INTERFACE - } IPipeDoubleVtbl; - - interface IPipeDouble - { - CONST_VTBL struct IPipeDoubleVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPipeDouble_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPipeDouble_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPipeDouble_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPipeDouble_Pull(This,buf,cRequest,pcReturned) \ - ( (This)->lpVtbl -> Pull(This,buf,cRequest,pcReturned) ) - -#define IPipeDouble_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Push(This,buf,cSent) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPipeDouble_INTERFACE_DEFINED__ */ - - -#ifndef __AsyncIPipeDouble_INTERFACE_DEFINED__ -#define __AsyncIPipeDouble_INTERFACE_DEFINED__ - -/* interface AsyncIPipeDouble */ -/* [uuid][unique][object] */ - - -EXTERN_C const IID IID_AsyncIPipeDouble; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DB2F3ACF-2F86-11d1-8E04-00C04FB9989A") - AsyncIPipeDouble : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Begin_Pull( - /* [in] */ ULONG cRequest) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Pull( - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) DOUBLE *buf, - /* [out] */ __RPC__out ULONG *pcReturned) = 0; - - virtual HRESULT STDMETHODCALLTYPE Begin_Push( - /* [size_is][in] */ __RPC__in_xcount_full(cSent) DOUBLE *buf, - /* [in] */ ULONG cSent) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_Push( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIPipeDoubleVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in AsyncIPipeDouble * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in AsyncIPipeDouble * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in AsyncIPipeDouble * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_Pull )( - __RPC__in AsyncIPipeDouble * This, - /* [in] */ ULONG cRequest); - - HRESULT ( STDMETHODCALLTYPE *Finish_Pull )( - __RPC__in AsyncIPipeDouble * This, - /* [length_is][size_is][out] */ __RPC__out_xcount_part(cRequest, *pcReturned) DOUBLE *buf, - /* [out] */ __RPC__out ULONG *pcReturned); - - HRESULT ( STDMETHODCALLTYPE *Begin_Push )( - __RPC__in AsyncIPipeDouble * This, - /* [size_is][in] */ __RPC__in_xcount_full(cSent) DOUBLE *buf, - /* [in] */ ULONG cSent); - - HRESULT ( STDMETHODCALLTYPE *Finish_Push )( - __RPC__in AsyncIPipeDouble * This); - - END_INTERFACE - } AsyncIPipeDoubleVtbl; - - interface AsyncIPipeDouble - { - CONST_VTBL struct AsyncIPipeDoubleVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIPipeDouble_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIPipeDouble_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIPipeDouble_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIPipeDouble_Begin_Pull(This,cRequest) \ - ( (This)->lpVtbl -> Begin_Pull(This,cRequest) ) - -#define AsyncIPipeDouble_Finish_Pull(This,buf,pcReturned) \ - ( (This)->lpVtbl -> Finish_Pull(This,buf,pcReturned) ) - -#define AsyncIPipeDouble_Begin_Push(This,buf,cSent) \ - ( (This)->lpVtbl -> Begin_Push(This,buf,cSent) ) - -#define AsyncIPipeDouble_Finish_Push(This) \ - ( (This)->lpVtbl -> Finish_Push(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __AsyncIPipeDouble_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0045 */ -/* [local] */ - -#if defined USE_COM_CONTEXT_DEF || defined BUILDTYPE_COMSVCS || defined _COMBASEAPI_ || defined _OLE32_ -typedef DWORD CPFLAGS; - -typedef struct tagContextProperty - { - GUID policyId; - CPFLAGS flags; - /* [unique] */ IUnknown *pUnk; - } ContextProperty; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0045_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0045_v0_0_s_ifspec; - -#ifndef __IEnumContextProps_INTERFACE_DEFINED__ -#define __IEnumContextProps_INTERFACE_DEFINED__ - -/* interface IEnumContextProps */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IEnumContextProps *LPENUMCONTEXTPROPS; - - -EXTERN_C const IID IID_IEnumContextProps; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001c1-0000-0000-C000-000000000046") - IEnumContextProps : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Next( - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) ContextProperty *pContextProperties, - /* [annotation][out] */ - _Out_ ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [annotation][in] */ - _In_ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [annotation][out] */ - _Outptr_ IEnumContextProps **ppEnumContextProps) = 0; - - virtual HRESULT STDMETHODCALLTYPE Count( - /* [annotation][out] */ - _Out_ ULONG *pcelt) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumContextPropsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IEnumContextProps * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IEnumContextProps * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IEnumContextProps * This); - - HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumContextProps * This, - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) ContextProperty *pContextProperties, - /* [annotation][out] */ - _Out_ ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - IEnumContextProps * This, - /* [annotation][in] */ - _In_ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - IEnumContextProps * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - IEnumContextProps * This, - /* [annotation][out] */ - _Outptr_ IEnumContextProps **ppEnumContextProps); - - HRESULT ( STDMETHODCALLTYPE *Count )( - IEnumContextProps * This, - /* [annotation][out] */ - _Out_ ULONG *pcelt); - - END_INTERFACE - } IEnumContextPropsVtbl; - - interface IEnumContextProps - { - CONST_VTBL struct IEnumContextPropsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumContextProps_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumContextProps_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumContextProps_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumContextProps_Next(This,celt,pContextProperties,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,pContextProperties,pceltFetched) ) - -#define IEnumContextProps_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumContextProps_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumContextProps_Clone(This,ppEnumContextProps) \ - ( (This)->lpVtbl -> Clone(This,ppEnumContextProps) ) - -#define IEnumContextProps_Count(This,pcelt) \ - ( (This)->lpVtbl -> Count(This,pcelt) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IEnumContextProps_INTERFACE_DEFINED__ */ - - -#ifndef __IContext_INTERFACE_DEFINED__ -#define __IContext_INTERFACE_DEFINED__ - -/* interface IContext */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IContext; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001c0-0000-0000-C000-000000000046") - IContext : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetProperty( - /* [annotation][in] */ - _In_ REFGUID rpolicyId, - /* [annotation][in] */ - _In_ CPFLAGS flags, - /* [annotation][in] */ - _In_ IUnknown *pUnk) = 0; - - virtual HRESULT STDMETHODCALLTYPE RemoveProperty( - /* [annotation][in] */ - _In_ REFGUID rPolicyId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetProperty( - /* [annotation][in] */ - _In_ REFGUID rGuid, - /* [annotation][out] */ - _Out_ CPFLAGS *pFlags, - /* [annotation][out] */ - _Outptr_ IUnknown **ppUnk) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumContextProps( - /* [annotation][out] */ - _Outptr_ IEnumContextProps **ppEnumContextProps) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IContextVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IContext * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IContext * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IContext * This); - - HRESULT ( STDMETHODCALLTYPE *SetProperty )( - IContext * This, - /* [annotation][in] */ - _In_ REFGUID rpolicyId, - /* [annotation][in] */ - _In_ CPFLAGS flags, - /* [annotation][in] */ - _In_ IUnknown *pUnk); - - HRESULT ( STDMETHODCALLTYPE *RemoveProperty )( - IContext * This, - /* [annotation][in] */ - _In_ REFGUID rPolicyId); - - HRESULT ( STDMETHODCALLTYPE *GetProperty )( - IContext * This, - /* [annotation][in] */ - _In_ REFGUID rGuid, - /* [annotation][out] */ - _Out_ CPFLAGS *pFlags, - /* [annotation][out] */ - _Outptr_ IUnknown **ppUnk); - - HRESULT ( STDMETHODCALLTYPE *EnumContextProps )( - IContext * This, - /* [annotation][out] */ - _Outptr_ IEnumContextProps **ppEnumContextProps); - - END_INTERFACE - } IContextVtbl; - - interface IContext - { - CONST_VTBL struct IContextVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IContext_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IContext_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IContext_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IContext_SetProperty(This,rpolicyId,flags,pUnk) \ - ( (This)->lpVtbl -> SetProperty(This,rpolicyId,flags,pUnk) ) - -#define IContext_RemoveProperty(This,rPolicyId) \ - ( (This)->lpVtbl -> RemoveProperty(This,rPolicyId) ) - -#define IContext_GetProperty(This,rGuid,pFlags,ppUnk) \ - ( (This)->lpVtbl -> GetProperty(This,rGuid,pFlags,ppUnk) ) - -#define IContext_EnumContextProps(This,ppEnumContextProps) \ - ( (This)->lpVtbl -> EnumContextProps(This,ppEnumContextProps) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IContext_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0047 */ -/* [local] */ - -#if !defined BUILDTYPE_COMSVCS && ! (defined _COMBASEAPI_ || defined _OLE32_) - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0047_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0047_v0_0_s_ifspec; - -#ifndef __IObjContext_INTERFACE_DEFINED__ -#define __IObjContext_INTERFACE_DEFINED__ - -/* interface IObjContext */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IObjContext; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001c6-0000-0000-C000-000000000046") - IObjContext : public IContext - { - public: - virtual void STDMETHODCALLTYPE Reserved1( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved2( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved3( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved4( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved5( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved6( void) = 0; - - virtual void STDMETHODCALLTYPE Reserved7( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IObjContextVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IObjContext * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ 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] */ - _Outptr_ IUnknown **ppUnk); - - HRESULT ( STDMETHODCALLTYPE *EnumContextProps )( - IObjContext * This, - /* [annotation][out] */ - _Outptr_ IEnumContextProps **ppEnumContextProps); - - void ( STDMETHODCALLTYPE *Reserved1 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved2 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved3 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved4 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved5 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved6 )( - IObjContext * This); - - void ( STDMETHODCALLTYPE *Reserved7 )( - IObjContext * This); - - END_INTERFACE - } IObjContextVtbl; - - interface IObjContext - { - CONST_VTBL struct IObjContextVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IObjContext_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IObjContext_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IObjContext_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IObjContext_SetProperty(This,rpolicyId,flags,pUnk) \ - ( (This)->lpVtbl -> SetProperty(This,rpolicyId,flags,pUnk) ) - -#define IObjContext_RemoveProperty(This,rPolicyId) \ - ( (This)->lpVtbl -> RemoveProperty(This,rPolicyId) ) - -#define IObjContext_GetProperty(This,rGuid,pFlags,ppUnk) \ - ( (This)->lpVtbl -> GetProperty(This,rGuid,pFlags,ppUnk) ) - -#define IObjContext_EnumContextProps(This,ppEnumContextProps) \ - ( (This)->lpVtbl -> EnumContextProps(This,ppEnumContextProps) ) - - -#define IObjContext_Reserved1(This) \ - ( (This)->lpVtbl -> Reserved1(This) ) - -#define IObjContext_Reserved2(This) \ - ( (This)->lpVtbl -> Reserved2(This) ) - -#define IObjContext_Reserved3(This) \ - ( (This)->lpVtbl -> Reserved3(This) ) - -#define IObjContext_Reserved4(This) \ - ( (This)->lpVtbl -> Reserved4(This) ) - -#define IObjContext_Reserved5(This) \ - ( (This)->lpVtbl -> Reserved5(This) ) - -#define IObjContext_Reserved6(This) \ - ( (This)->lpVtbl -> Reserved6(This) ) - -#define IObjContext_Reserved7(This) \ - ( (This)->lpVtbl -> Reserved7(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IObjContext_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0048 */ -/* [local] */ - -#endif -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -typedef -enum _APTTYPEQUALIFIER - { - APTTYPEQUALIFIER_NONE = 0, - APTTYPEQUALIFIER_IMPLICIT_MTA = 1, - APTTYPEQUALIFIER_NA_ON_MTA = 2, - APTTYPEQUALIFIER_NA_ON_STA = 3, - APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4, - APTTYPEQUALIFIER_NA_ON_MAINSTA = 5, - APTTYPEQUALIFIER_APPLICATION_STA = 6, - APTTYPEQUALIFIER_RESERVED_1 = 7 - } APTTYPEQUALIFIER; - -typedef -enum _APTTYPE - { - APTTYPE_CURRENT = -1, - APTTYPE_STA = 0, - APTTYPE_MTA = 1, - APTTYPE_NA = 2, - APTTYPE_MAINSTA = 3 - } APTTYPE; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -typedef -enum _THDTYPE - { - THDTYPE_BLOCKMESSAGES = 0, - THDTYPE_PROCESSMESSAGES = 1 - } THDTYPE; - -typedef DWORD APARTMENTID; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0048_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0048_v0_0_s_ifspec; - -#ifndef __IComThreadingInfo_INTERFACE_DEFINED__ -#define __IComThreadingInfo_INTERFACE_DEFINED__ - -/* interface IComThreadingInfo */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IComThreadingInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000001ce-0000-0000-C000-000000000046") - IComThreadingInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCurrentApartmentType( - /* [annotation][out] */ - _Out_ APTTYPE *pAptType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadType( - /* [annotation][out] */ - _Out_ THDTYPE *pThreadType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentLogicalThreadId( - /* [annotation][out] */ - _Out_ GUID *pguidLogicalThreadId) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetCurrentLogicalThreadId( - /* [annotation][in] */ - _In_ REFGUID rguid) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IComThreadingInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IComThreadingInfo * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IComThreadingInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IComThreadingInfo * This); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentApartmentType )( - IComThreadingInfo * This, - /* [annotation][out] */ - _Out_ APTTYPE *pAptType); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadType )( - IComThreadingInfo * This, - /* [annotation][out] */ - _Out_ THDTYPE *pThreadType); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentLogicalThreadId )( - IComThreadingInfo * This, - /* [annotation][out] */ - _Out_ GUID *pguidLogicalThreadId); - - HRESULT ( STDMETHODCALLTYPE *SetCurrentLogicalThreadId )( - IComThreadingInfo * This, - /* [annotation][in] */ - _In_ REFGUID rguid); - - END_INTERFACE - } IComThreadingInfoVtbl; - - interface IComThreadingInfo - { - CONST_VTBL struct IComThreadingInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IComThreadingInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IComThreadingInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IComThreadingInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IComThreadingInfo_GetCurrentApartmentType(This,pAptType) \ - ( (This)->lpVtbl -> GetCurrentApartmentType(This,pAptType) ) - -#define IComThreadingInfo_GetCurrentThreadType(This,pThreadType) \ - ( (This)->lpVtbl -> GetCurrentThreadType(This,pThreadType) ) - -#define IComThreadingInfo_GetCurrentLogicalThreadId(This,pguidLogicalThreadId) \ - ( (This)->lpVtbl -> GetCurrentLogicalThreadId(This,pguidLogicalThreadId) ) - -#define IComThreadingInfo_SetCurrentLogicalThreadId(This,rguid) \ - ( (This)->lpVtbl -> SetCurrentLogicalThreadId(This,rguid) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IComThreadingInfo_INTERFACE_DEFINED__ */ - - -#ifndef __IProcessInitControl_INTERFACE_DEFINED__ -#define __IProcessInitControl_INTERFACE_DEFINED__ - -/* interface IProcessInitControl */ -/* [uuid][unique][object] */ - - -EXTERN_C const IID IID_IProcessInitControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("72380d55-8d2b-43a3-8513-2b6ef31434e9") - IProcessInitControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ResetInitializerTimeout( - /* [in] */ DWORD dwSecondsRemaining) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IProcessInitControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IProcessInitControl * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IProcessInitControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IProcessInitControl * This); - - HRESULT ( STDMETHODCALLTYPE *ResetInitializerTimeout )( - __RPC__in IProcessInitControl * This, - /* [in] */ DWORD dwSecondsRemaining); - - END_INTERFACE - } IProcessInitControlVtbl; - - interface IProcessInitControl - { - CONST_VTBL struct IProcessInitControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IProcessInitControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IProcessInitControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IProcessInitControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IProcessInitControl_ResetInitializerTimeout(This,dwSecondsRemaining) \ - ( (This)->lpVtbl -> ResetInitializerTimeout(This,dwSecondsRemaining) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IProcessInitControl_INTERFACE_DEFINED__ */ - - -#ifndef __IFastRundown_INTERFACE_DEFINED__ -#define __IFastRundown_INTERFACE_DEFINED__ - -/* interface IFastRundown */ -/* [uuid][unique][local][object] */ - - -EXTERN_C const IID IID_IFastRundown; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000040-0000-0000-C000-000000000046") - IFastRundown : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct IFastRundownVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IFastRundown * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IFastRundown * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IFastRundown * This); - - END_INTERFACE - } IFastRundownVtbl; - - interface IFastRundown - { - CONST_VTBL struct IFastRundownVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IFastRundown_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IFastRundown_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IFastRundown_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IFastRundown_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0051 */ -/* [local] */ - -typedef -enum CO_MARSHALING_CONTEXT_ATTRIBUTES - { - CO_MARSHALING_SOURCE_IS_APP_CONTAINER = 0, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_1 = 0x80000000, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_2 = 0x80000001, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_3 = 0x80000002, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_4 = 0x80000003, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_5 = 0x80000004, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_6 = 0x80000005, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_7 = 0x80000006, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_8 = 0x80000007, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_9 = 0x80000008, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_10 = 0x80000009, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_11 = 0x8000000a, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_12 = 0x8000000b, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_13 = 0x8000000c, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_14 = 0x8000000d, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_15 = 0x8000000e, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_16 = 0x8000000f, - CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_17 = 0x80000010 - } CO_MARSHALING_CONTEXT_ATTRIBUTES; - - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0051_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0051_v0_0_s_ifspec; - -#ifndef __IMarshalingStream_INTERFACE_DEFINED__ -#define __IMarshalingStream_INTERFACE_DEFINED__ - -/* interface IMarshalingStream */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IMarshalingStream; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D8F2F5E6-6102-4863-9F26-389A4676EFDE") - IMarshalingStream : public IStream - { - public: - virtual HRESULT STDMETHODCALLTYPE GetMarshalingContextAttribute( - /* [in] */ CO_MARSHALING_CONTEXT_ATTRIBUTES attribute, - /* [out] */ ULONG_PTR *pAttributeValue) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMarshalingStreamVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMarshalingStream * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMarshalingStream * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMarshalingStream * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )( - IMarshalingStream * This, - /* [annotation] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbRead); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )( - IMarshalingStream * This, - /* [annotation] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbWritten); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Seek )( - IMarshalingStream * This, - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *plibNewPosition); - - HRESULT ( STDMETHODCALLTYPE *SetSize )( - IMarshalingStream * This, - /* [in] */ ULARGE_INTEGER libNewSize); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *CopyTo )( - IMarshalingStream * This, - /* [annotation][unique][in] */ - _In_ IStream *pstm, - /* [in] */ ULARGE_INTEGER cb, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbRead, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbWritten); - - HRESULT ( STDMETHODCALLTYPE *Commit )( - IMarshalingStream * This, - /* [in] */ DWORD grfCommitFlags); - - HRESULT ( STDMETHODCALLTYPE *Revert )( - IMarshalingStream * This); - - HRESULT ( STDMETHODCALLTYPE *LockRegion )( - IMarshalingStream * This, - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType); - - HRESULT ( STDMETHODCALLTYPE *UnlockRegion )( - IMarshalingStream * This, - /* [in] */ ULARGE_INTEGER libOffset, - /* [in] */ ULARGE_INTEGER cb, - /* [in] */ DWORD dwLockType); - - HRESULT ( STDMETHODCALLTYPE *Stat )( - IMarshalingStream * This, - /* [out] */ STATSTG *pstatstg, - /* [in] */ DWORD grfStatFlag); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - IMarshalingStream * This, - /* [out] */ IStream **ppstm); - - HRESULT ( STDMETHODCALLTYPE *GetMarshalingContextAttribute )( - IMarshalingStream * This, - /* [in] */ CO_MARSHALING_CONTEXT_ATTRIBUTES attribute, - /* [out] */ ULONG_PTR *pAttributeValue); - - END_INTERFACE - } IMarshalingStreamVtbl; - - interface IMarshalingStream - { - CONST_VTBL struct IMarshalingStreamVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMarshalingStream_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMarshalingStream_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMarshalingStream_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMarshalingStream_Read(This,pv,cb,pcbRead) \ - ( (This)->lpVtbl -> Read(This,pv,cb,pcbRead) ) - -#define IMarshalingStream_Write(This,pv,cb,pcbWritten) \ - ( (This)->lpVtbl -> Write(This,pv,cb,pcbWritten) ) - - -#define IMarshalingStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) \ - ( (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition) ) - -#define IMarshalingStream_SetSize(This,libNewSize) \ - ( (This)->lpVtbl -> SetSize(This,libNewSize) ) - -#define IMarshalingStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) \ - ( (This)->lpVtbl -> CopyTo(This,pstm,cb,pcbRead,pcbWritten) ) - -#define IMarshalingStream_Commit(This,grfCommitFlags) \ - ( (This)->lpVtbl -> Commit(This,grfCommitFlags) ) - -#define IMarshalingStream_Revert(This) \ - ( (This)->lpVtbl -> Revert(This) ) - -#define IMarshalingStream_LockRegion(This,libOffset,cb,dwLockType) \ - ( (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType) ) - -#define IMarshalingStream_UnlockRegion(This,libOffset,cb,dwLockType) \ - ( (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType) ) - -#define IMarshalingStream_Stat(This,pstatstg,grfStatFlag) \ - ( (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag) ) - -#define IMarshalingStream_Clone(This,ppstm) \ - ( (This)->lpVtbl -> Clone(This,ppstm) ) - - -#define IMarshalingStream_GetMarshalingContextAttribute(This,attribute,pAttributeValue) \ - ( (This)->lpVtbl -> GetMarshalingContextAttribute(This,attribute,pAttributeValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMarshalingStream_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0052 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0052_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0052_v0_0_s_ifspec; - -#ifndef __IAgileReference_INTERFACE_DEFINED__ -#define __IAgileReference_INTERFACE_DEFINED__ - -/* interface IAgileReference */ -/* [unique][uuid][object][local] */ - -#if defined(__cplusplus) && !defined(CINTERFACE) - EXTERN_C const IID IID_IAgileReference; - extern "C++" - { - MIDL_INTERFACE("C03F6A43-65A4-9818-987E-E0B810D2A6F2") - IAgileReference : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Resolve( - /* [in] */ REFIID riid, - /* [iid_is][retval][out] */ void **ppvObjectReference) = 0; - - template - HRESULT -#ifdef _M_CEE_PURE - __clrcall -#else - STDMETHODCALLTYPE -#endif - Resolve(_COM_Outptr_ Q** pp) - { - return Resolve(__uuidof(Q), (void **)pp); - } - - }; - } // extern C++ -#else - -EXTERN_C const IID IID_IAgileReference; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C03F6A43-65A4-9818-987E-E0B810D2A6F2") - IAgileReference : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Resolve( - /* [in] */ REFIID riid, - /* [iid_is][retval][out] */ void **ppvObjectReference) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAgileReferenceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAgileReference * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAgileReference * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAgileReference * This); - - HRESULT ( STDMETHODCALLTYPE *Resolve )( - IAgileReference * This, - /* [in] */ REFIID riid, - /* [iid_is][retval][out] */ void **ppvObjectReference); - - END_INTERFACE - } IAgileReferenceVtbl; - - interface IAgileReference - { - CONST_VTBL struct IAgileReferenceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAgileReference_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAgileReference_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAgileReference_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAgileReference_Resolve(This,riid,ppvObjectReference) \ - ( (This)->lpVtbl -> Resolve(This,riid,ppvObjectReference) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAgileReference_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_objidlbase_0000_0053 */ -/* [local] */ - -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -EXTERN_C const GUID IID_ICallbackWithNoReentrancyToApplicationSTA; -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#define _OBJIDLBASE_ -#endif -#if ( _MSC_VER >= 800 ) -#if _MSC_VER >= 1200 -#pragma warning(pop) -#else -#pragma warning(default:4201) -#endif -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0053_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_objidlbase_0000_0053_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumUnknown_Next_Proxy( - IEnumUnknown * This, - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][out] */ - _Out_writes_to_(celt,*pceltFetched) IUnknown **rgelt, - /* [annotation][out] */ - _Out_opt_ ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumUnknown_Next_Stub( - __RPC__in IEnumUnknown * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IUnknown **rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumString_Next_Proxy( - IEnumString * This, - /* [in] */ ULONG celt, - /* [annotation] */ - _Out_writes_to_(celt,*pceltFetched) LPOLESTR *rgelt, - /* [annotation] */ - _Out_opt_ ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumString_Next_Stub( - __RPC__in IEnumString * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) LPOLESTR *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - -/* [local] */ HRESULT STDMETHODCALLTYPE ISequentialStream_Read_Proxy( - ISequentialStream * This, - /* [annotation] */ - _Out_writes_bytes_to_(cb, *pcbRead) void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbRead); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ISequentialStream_Read_Stub( - __RPC__in ISequentialStream * This, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(cb, *pcbRead) byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbRead); - -/* [local] */ HRESULT STDMETHODCALLTYPE ISequentialStream_Write_Proxy( - ISequentialStream * This, - /* [annotation] */ - _In_reads_bytes_(cb) const void *pv, - /* [annotation][in] */ - _In_ ULONG cb, - /* [annotation] */ - _Out_opt_ ULONG *pcbWritten); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE ISequentialStream_Write_Stub( - __RPC__in ISequentialStream * This, - /* [size_is][in] */ __RPC__in_ecount_full(cb) const byte *pv, - /* [in] */ ULONG cb, - /* [out] */ __RPC__out ULONG *pcbWritten); - -/* [local] */ HRESULT STDMETHODCALLTYPE IStream_Seek_Proxy( - IStream * This, - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *plibNewPosition); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStream_Seek_Stub( - __RPC__in IStream * This, - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [out] */ __RPC__out ULARGE_INTEGER *plibNewPosition); - -/* [local] */ HRESULT STDMETHODCALLTYPE IStream_CopyTo_Proxy( - IStream * This, - /* [annotation][unique][in] */ - _In_ IStream *pstm, - /* [in] */ ULARGE_INTEGER cb, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbRead, - /* [annotation] */ - _Out_opt_ ULARGE_INTEGER *pcbWritten); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IStream_CopyTo_Stub( - __RPC__in IStream * This, - /* [unique][in] */ __RPC__in_opt IStream *pstm, - /* [in] */ ULARGE_INTEGER cb, - /* [out] */ __RPC__out ULARGE_INTEGER *pcbRead, - /* [out] */ __RPC__out ULARGE_INTEGER *pcbWritten); - - - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/custom/winsdk/include/um/Ole2.h b/src/custom/winsdk/include/um/Ole2.h deleted file mode 100644 index 3822e92..0000000 --- a/src/custom/winsdk/include/um/Ole2.h +++ /dev/null @@ -1,357 +0,0 @@ -#include - - -#if _MSC_VER >= 1200 -#pragma warning(push) -#pragma warning(disable:4001) /* nonstandard extension : single line comment */ -#endif - -//+--------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// File: OLE2.h -// Contents: Main OLE2 header; Defines Linking and Emmebbeding interfaces, and API's. -// Also includes .h files for the compobj, and oleauto subcomponents. -// -//---------------------------------------------------------------------------- -#if !defined( _OLE2_H_ ) -#define _OLE2_H_ - -#if _MSC_VER > 1000 -#pragma once -#endif - -// Set packing to 8 -#include - -// Make 100% sure WIN32 is defined -#ifndef WIN32 -#define WIN32 100 // 100 == NT version 1.0 -#endif - -// SET to remove _export from interface definitions - -#include -#include -#include -#include - -// View OBJECT Error Codes - -#define E_DRAW VIEW_E_DRAW - -// IDataObject Error Codes -#define DATA_E_FORMATETC DV_E_FORMATETC - - -// Common stuff gleamed from OLE.2, - -/* verbs */ -#define OLEIVERB_PRIMARY (0L) -#define OLEIVERB_SHOW (-1L) -#define OLEIVERB_OPEN (-2L) -#define OLEIVERB_HIDE (-3L) -#define OLEIVERB_UIACTIVATE (-4L) -#define OLEIVERB_INPLACEACTIVATE (-5L) -#define OLEIVERB_DISCARDUNDOSTATE (-6L) - -// for OleCreateEmbeddingHelper flags; roles in low word; options in high word -#define EMBDHLP_INPROC_HANDLER 0x0000L -#define EMBDHLP_INPROC_SERVER 0x0001L -#define EMBDHLP_CREATENOW 0x00000000L -#define EMBDHLP_DELAYCREATE 0x00010000L - -/* extended create function flags */ -#define OLECREATE_LEAVERUNNING 0x00000001 - -/* pull in the MIDL generated header */ - -#include - - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -/****** DV APIs ***********************************************************/ - - -/* This function is declared in objbase.h and ole2.h. - IsolationAware support is via objbase.h. -*/ -#if !defined(ISOLATION_AWARE_ENABLED) \ - || !ISOLATION_AWARE_ENABLED \ - || !defined(_OBJBASE_H_) \ - || !defined(CreateDataAdviseHolder) -WINOLEAPI CreateDataAdviseHolder(_Outptr_ LPDATAADVISEHOLDER FAR* ppDAHolder); -#endif - -/****** OLE API Prototypes ************************************************/ - -WINOLEAPI_(DWORD) OleBuildVersion( VOID ); - -_Check_return_ WINOLEAPI WriteFmtUserTypeStg (IN LPSTORAGE pstg, IN CLIPFORMAT cf, _In_z_ LPOLESTR lpszUserType); -WINOLEAPI ReadFmtUserTypeStg (IN LPSTORAGE pstg, OUT CLIPFORMAT FAR* pcf, _Outptr_opt_result_z_ LPOLESTR FAR* lplpszUserType); - - -/* init/term */ - -_Check_return_ WINOLEAPI OleInitialize(IN LPVOID pvReserved); -WINOLEAPI_(void) OleUninitialize(void); - - -/* APIs to query whether (Embedded/Linked) object can be created from - the data object */ - -WINOLEAPI OleQueryLinkFromData(IN LPDATAOBJECT pSrcDataObject); -WINOLEAPI OleQueryCreateFromData(IN LPDATAOBJECT pSrcDataObject); - - -/* Object creation APIs */ - -WINOLEAPI OleCreate(IN REFCLSID rclsid, IN REFIID riid, IN DWORD renderopt, - IN LPFORMATETC pFormatEtc, IN LPOLECLIENTSITE pClientSite, - IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj); - -_Check_return_ -WINOLEAPI OleCreateEx(IN REFCLSID rclsid, IN REFIID riid, IN DWORD dwFlags, - IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf, - IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink, - OUT DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite, - IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj); - -WINOLEAPI OleCreateFromData(IN LPDATAOBJECT pSrcDataObj, IN REFIID riid, - IN DWORD renderopt, IN LPFORMATETC pFormatEtc, - IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg, - OUT LPVOID FAR* ppvObj); - -_Check_return_ -WINOLEAPI OleCreateFromDataEx(IN LPDATAOBJECT pSrcDataObj, IN REFIID riid, - IN DWORD dwFlags, IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf, - IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink, - OUT DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite, - IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj); - -WINOLEAPI OleCreateLinkFromData(IN LPDATAOBJECT pSrcDataObj, IN REFIID riid, - IN DWORD renderopt, IN LPFORMATETC pFormatEtc, - IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg, - OUT LPVOID FAR* ppvObj); - -_Check_return_ -WINOLEAPI OleCreateLinkFromDataEx(IN LPDATAOBJECT pSrcDataObj, IN REFIID riid, - IN DWORD dwFlags, IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf, - IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink, - OUT IN DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite, - IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj); - -WINOLEAPI OleCreateStaticFromData(IN LPDATAOBJECT pSrcDataObj, IN REFIID iid, - IN DWORD renderopt, IN LPFORMATETC pFormatEtc, - IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg, - OUT LPVOID FAR* ppvObj); - - -WINOLEAPI OleCreateLink(IN LPMONIKER pmkLinkSrc, IN REFIID riid, - IN DWORD renderopt, IN LPFORMATETC lpFormatEtc, - IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj); - -WINOLEAPI OleCreateLinkEx(IN LPMONIKER pmkLinkSrc, IN REFIID riid, - IN DWORD dwFlags, IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf, - IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink, - OUT DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite, - IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj); - -WINOLEAPI OleCreateLinkToFile(IN LPCOLESTR lpszFileName, IN REFIID riid, - IN DWORD renderopt, IN LPFORMATETC lpFormatEtc, - IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj); - -WINOLEAPI OleCreateLinkToFileEx(IN LPCOLESTR lpszFileName, IN REFIID riid, - IN DWORD dwFlags, IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf, - IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink, - OUT DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite, - IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj); - -WINOLEAPI OleCreateFromFile(IN REFCLSID rclsid, IN LPCOLESTR lpszFileName, IN REFIID riid, - IN DWORD renderopt, IN LPFORMATETC lpFormatEtc, - IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj); - -_Check_return_ -WINOLEAPI OleCreateFromFileEx(IN REFCLSID rclsid, IN LPCOLESTR lpszFileName, IN REFIID riid, - IN DWORD dwFlags, IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf, - IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink, - OUT DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite, - IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj); - -WINOLEAPI OleLoad(IN LPSTORAGE pStg, IN REFIID riid, IN LPOLECLIENTSITE pClientSite, - OUT LPVOID FAR* ppvObj); - -WINOLEAPI OleSave(_In_ LPPERSISTSTORAGE pPS, _In_ LPSTORAGE pStg, _In_ BOOL fSameAsLoad); - -WINOLEAPI OleLoadFromStream( IN LPSTREAM pStm, IN REFIID iidInterface, OUT LPVOID FAR* ppvObj); -WINOLEAPI OleSaveToStream( IN LPPERSISTSTREAM pPStm, IN LPSTREAM pStm ); - - -WINOLEAPI OleSetContainedObject(IN LPUNKNOWN pUnknown, IN BOOL fContained); -WINOLEAPI OleNoteObjectVisible(IN LPUNKNOWN pUnknown, IN BOOL fVisible); - - -/* Drag/Drop APIs */ - -WINOLEAPI RegisterDragDrop(IN HWND hwnd, IN LPDROPTARGET pDropTarget); -WINOLEAPI RevokeDragDrop(IN HWND hwnd); -WINOLEAPI DoDragDrop(IN LPDATAOBJECT pDataObj, IN LPDROPSOURCE pDropSource, - IN DWORD dwOKEffects, OUT LPDWORD pdwEffect); - -/* Clipboard APIs */ - -WINOLEAPI OleSetClipboard(IN LPDATAOBJECT pDataObj); -WINOLEAPI OleGetClipboard(_Outptr_ LPDATAOBJECT FAR* ppDataObj); -#if (NTDDI_VERSION >= NTDDI_WIN10_RS1) -WINOLEAPI OleGetClipboardWithEnterpriseInfo(_Outptr_result_nullonfailure_ IDataObject** dataObject, - _Outptr_result_nullonfailure_ PWSTR* dataEnterpriseId, - _Outptr_result_nullonfailure_ PWSTR* sourceDescription, - _Outptr_result_nullonfailure_ PWSTR* targetDescription, - _Outptr_result_nullonfailure_ PWSTR* dataDescription); -#endif -WINOLEAPI OleFlushClipboard(void); -WINOLEAPI OleIsCurrentClipboard(IN LPDATAOBJECT pDataObj); - -/* InPlace Editing APIs */ - -WINOLEAPI_(HOLEMENU) OleCreateMenuDescriptor (IN HMENU hmenuCombined, - IN LPOLEMENUGROUPWIDTHS lpMenuWidths); -WINOLEAPI OleSetMenuDescriptor (IN HOLEMENU holemenu, IN HWND hwndFrame, - IN HWND hwndActiveObject, - IN LPOLEINPLACEFRAME lpFrame, - IN LPOLEINPLACEACTIVEOBJECT lpActiveObj); -WINOLEAPI OleDestroyMenuDescriptor (IN HOLEMENU holemenu); - -WINOLEAPI OleTranslateAccelerator (IN LPOLEINPLACEFRAME lpFrame, - IN LPOLEINPLACEFRAMEINFO lpFrameInfo, IN LPMSG lpmsg); - - -/* Helper APIs */ - -WINOLEAPI_(HANDLE) OleDuplicateData (IN HANDLE hSrc, IN CLIPFORMAT cfFormat, - IN UINT uiFlags); - - - -WINOLEAPI OleDraw (IN LPUNKNOWN pUnknown, IN DWORD dwAspect, IN HDC hdcDraw, - IN LPCRECT lprcBounds); - -_Check_return_ WINOLEAPI OleRun(IN LPUNKNOWN pUnknown); -WINOLEAPI_(BOOL) OleIsRunning(IN LPOLEOBJECT pObject); -WINOLEAPI OleLockRunning(IN LPUNKNOWN pUnknown, IN BOOL fLock, IN BOOL fLastUnlockCloses); - -WINOLEAPI_(void) ReleaseStgMedium(IN LPSTGMEDIUM); - -WINOLEAPI CreateOleAdviseHolder(_Out_ LPOLEADVISEHOLDER FAR* ppOAHolder); - -WINOLEAPI OleCreateDefaultHandler(IN REFCLSID clsid, IN LPUNKNOWN pUnkOuter, - IN REFIID riid, OUT LPVOID FAR* lplpObj); - -WINOLEAPI OleCreateEmbeddingHelper(IN REFCLSID clsid, IN LPUNKNOWN pUnkOuter, - IN DWORD flags, IN LPCLASSFACTORY pCF, - IN REFIID riid, OUT LPVOID FAR* lplpObj); - -WINOLEAPI_(BOOL) IsAccelerator(IN HACCEL hAccel, IN int cAccelEntries, IN LPMSG lpMsg, - OUT WORD FAR* lpwCmd); -/* Icon extraction Helper APIs */ - -WINOLEAPI_(HGLOBAL) OleGetIconOfFile(_In_ LPOLESTR lpszPath, IN BOOL fUseFileAsLabel); - -WINOLEAPI_(HGLOBAL) OleGetIconOfClass(IN REFCLSID rclsid, _In_opt_ LPOLESTR lpszLabel, - IN BOOL fUseTypeAsLabel); - -WINOLEAPI_(HGLOBAL) OleMetafilePictFromIconAndLabel(IN HICON hIcon, _In_ LPOLESTR lpszLabel, - _In_ LPOLESTR lpszSourceFile, IN UINT iIconIndex); - - - -/* Registration Database Helper APIs */ - -_Check_return_ WINOLEAPI OleRegGetUserType (IN REFCLSID clsid, IN DWORD dwFormOfType, - _Outptr_ LPOLESTR FAR* pszUserType); - -WINOLEAPI OleRegGetMiscStatus (IN REFCLSID clsid, IN DWORD dwAspect, - OUT DWORD FAR* pdwStatus); - -WINOLEAPI OleRegEnumFormatEtc(IN REFCLSID clsid, IN DWORD dwDirection, - _Outptr_ LPENUMFORMATETC FAR* ppenum); - -WINOLEAPI OleRegEnumVerbs (IN REFCLSID clsid, _Outptr_ LPENUMOLEVERB FAR* ppenum); - - -/* OLE 1.0 conversion APIS */ - -/***** OLE 1.0 OLESTREAM declarations *************************************/ - -typedef struct _OLESTREAM FAR* LPOLESTREAM; - -typedef struct _OLESTREAMVTBL -{ - DWORD (CALLBACK* Get)(LPOLESTREAM, void FAR*, DWORD); - DWORD (CALLBACK* Put)(LPOLESTREAM, const void FAR*, DWORD); -} OLESTREAMVTBL; -typedef OLESTREAMVTBL FAR* LPOLESTREAMVTBL; - -typedef struct _OLESTREAM -{ - LPOLESTREAMVTBL lpstbl; -} OLESTREAM; - - -WINOLEAPI OleConvertOLESTREAMToIStorage - (IN LPOLESTREAM lpolestream, - OUT LPSTORAGE pstg, - IN const DVTARGETDEVICE FAR* ptd); - -WINOLEAPI OleConvertIStorageToOLESTREAM - (IN LPSTORAGE pstg, - OUT LPOLESTREAM lpolestream); - - -/* ConvertTo APIS */ - -WINOLEAPI OleDoAutoConvert(IN LPSTORAGE pStg, OUT LPCLSID pClsidNew); -WINOLEAPI OleGetAutoConvert(IN REFCLSID clsidOld, OUT LPCLSID pClsidNew); -WINOLEAPI OleSetAutoConvert(IN REFCLSID clsidOld, IN REFCLSID clsidNew); - -WINOLEAPI SetConvertStg(IN LPSTORAGE pStg, IN BOOL fConvert); - - -WINOLEAPI OleConvertIStorageToOLESTREAMEx - (IN LPSTORAGE pstg, - // Presentation data to OLESTREAM - IN CLIPFORMAT cfFormat, // format - IN LONG lWidth, // width - IN LONG lHeight, // height - IN DWORD dwSize, // size in bytes - IN LPSTGMEDIUM pmedium, // bits - OUT LPOLESTREAM polestm); - -WINOLEAPI OleConvertOLESTREAMToIStorageEx - (IN LPOLESTREAM polestm, - OUT LPSTORAGE pstg, - // Presentation data from OLESTREAM - OUT CLIPFORMAT FAR* pcfFormat, // format - OUT LONG FAR* plwWidth, // width - OUT LONG FAR* plHeight, // height - OUT DWORD FAR* pdwSize, // size in bytes - OUT LPSTGMEDIUM pmedium); // bits - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#ifndef RC_INVOKED -#include -#endif // RC_INVOKED - - -#endif // __OLE2_H__ - -#if _MSC_VER >= 1200 -#pragma warning(pop) -#endif - diff --git a/src/custom/winsdk/include/um/OleAuto.h b/src/custom/winsdk/include/um/OleAuto.h deleted file mode 100644 index 6a33c75..0000000 --- a/src/custom/winsdk/include/um/OleAuto.h +++ /dev/null @@ -1,1435 +0,0 @@ -#include - -#if _MSC_VER >= 1200 -#pragma warning(push) -#pragma warning(disable:4001) /* nonstandard extension : single line comment */ -#pragma warning(disable:4820) // padding added after data member -#endif - -//+--------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// File: oleauto.h -// -// Contents: Defines Ole Automation support function prototypes, constants -// -//---------------------------------------------------------------------------- - -#if !defined( _OLEAUTO_H_ ) -#define _OLEAUTO_H_ - -#if _MSC_VER > 1000 -#pragma once -#endif - -// Set packing to 8 for ISV, and Win95 support -#ifndef RC_INVOKED -#include -#endif // RC_INVOKED - -// Definition of the OLE Automation APIs, and macros. - -#ifdef _OLEAUT32_ -#define WINOLEAUTAPI STDAPI -#define WINOLEAUTAPI_(type) STDAPI_(type) -#else -#define WINOLEAUTAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE -#define WINOLEAUTAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE -#endif - -EXTERN_C const IID IID_StdOle; - -#define STDOLE_MAJORVERNUM 0x1 -#define STDOLE_MINORVERNUM 0x0 -#define STDOLE_LCID 0x0000 - -// Version # of stdole2.tlb -#define STDOLE2_MAJORVERNUM 0x2 -#define STDOLE2_MINORVERNUM 0x0 -#define STDOLE2_LCID 0x0000 - -/* if not already picked up from olenls.h */ -#ifndef _LCID_DEFINED -typedef DWORD LCID; -# define _LCID_DEFINED -#endif /* _LCID_DEFINED */ - -#ifndef BEGIN_INTERFACE -#define BEGIN_INTERFACE -#define END_INTERFACE -#endif - -/* pull in the MIDL generated header */ -#include - -/*---------------------------------------------------------------------*/ -/* BSTR API */ -/*---------------------------------------------------------------------*/ - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -WINOLEAUTAPI_(BSTR) SysAllocString(_In_opt_z_ const OLECHAR * psz); -WINOLEAUTAPI_(INT) SysReAllocString(_Inout_ _At_(*pbstr, _Pre_z_ _Post_z_ _Post_readable_size_(_String_length_(psz)+1)) BSTR* pbstr, _In_opt_z_ const OLECHAR* psz); -WINOLEAUTAPI_(_Ret_writes_maybenull_z_(ui+1) BSTR) SysAllocStringLen(_In_reads_opt_(ui) const OLECHAR * strIn, UINT ui); -_Check_return_ WINOLEAUTAPI_(INT) SysReAllocStringLen(_Inout_ _At_(*pbstr, _Pre_z_ _Post_z_ _Post_readable_size_(len+1)) BSTR* pbstr, _In_opt_z_ const OLECHAR* psz, _In_ unsigned int len); -WINOLEAUTAPI SysAddRefString(_In_ BSTR bstrString); -WINOLEAUTAPI_(void) SysReleaseString(_In_ BSTR bstrString); -WINOLEAUTAPI_(void) SysFreeString(_In_opt_ BSTR bstrString); -WINOLEAUTAPI_(_Post_equal_to_(pbstr == NULL ? 0 : _String_length_(pbstr)) UINT) SysStringLen(_In_opt_ BSTR pbstr); - -#if (defined (_WIN32) || defined (_WIN64)) -WINOLEAUTAPI_(_Post_equal_to_(_String_length_(bstr) * sizeof(OLECHAR)) UINT) SysStringByteLen(_In_opt_ BSTR bstr); -WINOLEAUTAPI_(BSTR) SysAllocStringByteLen(_In_opt_z_ LPCSTR psz, _In_ UINT len); - -#endif /* (defined (_WIN32) || defined (_WIN64)) */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -/*---------------------------------------------------------------------*/ -/* Time API */ -/*---------------------------------------------------------------------*/ - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -WINOLEAUTAPI_(INT) DosDateTimeToVariantTime(_In_ USHORT wDosDate, _In_ USHORT wDosTime, _Out_ DOUBLE * pvtime); - -WINOLEAUTAPI_(INT) VariantTimeToDosDateTime(_In_ DOUBLE vtime, _Out_ USHORT * pwDosDate, _Out_ USHORT * pwDosTime); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#if (defined (_WIN32) || defined (_WIN64)) - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -WINOLEAUTAPI_(INT) SystemTimeToVariantTime(_In_ LPSYSTEMTIME lpSystemTime, _Out_ DOUBLE *pvtime); -WINOLEAUTAPI_(INT) VariantTimeToSystemTime(_In_ DOUBLE vtime, _Out_ LPSYSTEMTIME lpSystemTime); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#endif /* (defined (_WIN32) || defined (_WIN64)) */ - - -/*---------------------------------------------------------------------*/ -/* SafeArray API */ -/*---------------------------------------------------------------------*/ - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -WINOLEAUTAPI SafeArrayAllocDescriptor(_In_ UINT cDims, _Outptr_ SAFEARRAY ** ppsaOut); -WINOLEAUTAPI SafeArrayAllocDescriptorEx(_In_ VARTYPE vt, _In_ UINT cDims, _Outptr_ SAFEARRAY ** ppsaOut); -WINOLEAUTAPI SafeArrayAllocData(_In_ SAFEARRAY * psa); -WINOLEAUTAPI_(SAFEARRAY *) SafeArrayCreate(_In_ VARTYPE vt, _In_ UINT cDims, _In_ SAFEARRAYBOUND * rgsabound); -WINOLEAUTAPI_(SAFEARRAY *) SafeArrayCreateEx(_In_ VARTYPE vt, _In_ UINT cDims, _In_ SAFEARRAYBOUND * rgsabound, _In_ PVOID pvExtra); -_Check_return_ -WINOLEAUTAPI SafeArrayCopyData(_In_ SAFEARRAY *psaSource, _In_ SAFEARRAY *psaTarget); -WINOLEAUTAPI_(void) SafeArrayReleaseDescriptor(_In_ SAFEARRAY * psa); -WINOLEAUTAPI SafeArrayDestroyDescriptor(_In_ SAFEARRAY * psa); -WINOLEAUTAPI_(void) SafeArrayReleaseData(_In_ PVOID pData); -WINOLEAUTAPI SafeArrayDestroyData(_In_ SAFEARRAY * psa); -WINOLEAUTAPI SafeArrayAddRef(_In_ SAFEARRAY * psa, _Out_ PVOID *ppDataToRelease); -WINOLEAUTAPI SafeArrayDestroy(_In_ SAFEARRAY * psa); -WINOLEAUTAPI SafeArrayRedim(_Inout_ SAFEARRAY * psa, _In_ SAFEARRAYBOUND * psaboundNew); -WINOLEAUTAPI_(UINT) SafeArrayGetDim(_In_ SAFEARRAY * psa); -WINOLEAUTAPI_(UINT) SafeArrayGetElemsize(_In_ SAFEARRAY * psa); -WINOLEAUTAPI SafeArrayGetUBound(_In_ SAFEARRAY * psa, _In_ UINT nDim, _Out_ LONG * plUbound); -WINOLEAUTAPI SafeArrayGetLBound(_In_ SAFEARRAY * psa, _In_ UINT nDim, _Out_ LONG * plLbound); -WINOLEAUTAPI SafeArrayLock(_In_ SAFEARRAY * psa); -WINOLEAUTAPI SafeArrayUnlock(_In_ SAFEARRAY * psa); -WINOLEAUTAPI SafeArrayAccessData(_In_ SAFEARRAY * psa, _Outptr_result_buffer_(_Inexpressible_(psa->cbElements * product(psa->rgsabound[0..psa->cDims-1]->cElements))) void HUGEP** ppvData); -WINOLEAUTAPI SafeArrayUnaccessData(_In_ SAFEARRAY * psa); -WINOLEAUTAPI SafeArrayGetElement(_In_ SAFEARRAY * psa, _In_reads_(_Inexpressible_(psa->cDims)) LONG * rgIndices, _Out_ void * pv); -_Check_return_ -WINOLEAUTAPI SafeArrayPutElement(_In_ SAFEARRAY * psa, _In_reads_(_Inexpressible_(psa->cDims)) LONG * rgIndices, _In_ void * pv); -_Check_return_ -WINOLEAUTAPI SafeArrayCopy(_In_ SAFEARRAY * psa, _Outptr_ SAFEARRAY ** ppsaOut); -WINOLEAUTAPI SafeArrayPtrOfIndex(_In_ SAFEARRAY * psa, _In_reads_(psa->cDims) LONG * rgIndices, _Outptr_result_bytebuffer_(psa->cbElements) void ** ppvData); -WINOLEAUTAPI SafeArraySetRecordInfo(_In_ SAFEARRAY * psa, _In_ IRecordInfo * prinfo); -WINOLEAUTAPI SafeArrayGetRecordInfo(_In_ SAFEARRAY * psa, _Outptr_ IRecordInfo ** prinfo); -WINOLEAUTAPI SafeArraySetIID(_In_ SAFEARRAY * psa, _In_ REFGUID guid); -WINOLEAUTAPI SafeArrayGetIID(_In_ SAFEARRAY * psa, _Out_ GUID * pguid); -WINOLEAUTAPI SafeArrayGetVartype(_In_ SAFEARRAY * psa, _Out_ VARTYPE * pvt); -WINOLEAUTAPI_(SAFEARRAY *) SafeArrayCreateVector(_In_ VARTYPE vt, _In_ LONG lLbound, _In_ ULONG cElements); -WINOLEAUTAPI_(SAFEARRAY *) SafeArrayCreateVectorEx(_In_ VARTYPE vt, _In_ LONG lLbound, _In_ ULONG cElements, _In_ PVOID pvExtra); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -/*---------------------------------------------------------------------*/ -/* VARIANT API */ -/*---------------------------------------------------------------------*/ - - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -WINOLEAUTAPI_(void) VariantInit(_Out_ VARIANTARG * pvarg); -WINOLEAUTAPI VariantClear(_Inout_ VARIANTARG * pvarg); -_Check_return_ -WINOLEAUTAPI VariantCopy(_Inout_ VARIANTARG * pvargDest, _In_ const VARIANTARG * pvargSrc); -_Check_return_ -WINOLEAUTAPI VariantCopyInd(_Inout_ VARIANT * pvarDest, _In_ const VARIANTARG * pvargSrc); -_Check_return_ -WINOLEAUTAPI VariantChangeType(_Inout_ VARIANTARG * pvargDest, - _In_ const VARIANTARG * pvarSrc, _In_ USHORT wFlags, _In_ VARTYPE vt); -_Check_return_ -WINOLEAUTAPI VariantChangeTypeEx(_Inout_ VARIANTARG * pvargDest, - _In_ const VARIANTARG * pvarSrc, _In_ LCID lcid, _In_ USHORT wFlags, _In_ VARTYPE vt); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -// Flags for VariantChangeType/VariantChangeTypeEx -#define VARIANT_NOVALUEPROP 0x01 -#define VARIANT_ALPHABOOL 0x02 // For VT_BOOL to VT_BSTR conversions, - // convert to "True"/"False" instead of - // "-1"/"0" -#define VARIANT_NOUSEROVERRIDE 0x04 // For conversions to/from VT_BSTR, - // passes LOCALE_NOUSEROVERRIDE - // to core coercion routines -#define VARIANT_CALENDAR_HIJRI 0x08 -#define VARIANT_LOCALBOOL 0x10 // For VT_BOOL to VT_BSTR and back, - // convert to local language rather than - // English -#define VARIANT_CALENDAR_THAI 0x20 // SOUTHASIA calendar support -#define VARIANT_CALENDAR_GREGORIAN 0x40 // SOUTHASIA calendar support -#define VARIANT_USE_NLS 0x80 // NLS function call support -/*---------------------------------------------------------------------*/ -/* Vector <-> Bstr conversion APIs */ -/*---------------------------------------------------------------------*/ - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ -WINOLEAUTAPI VectorFromBstr (_In_ BSTR bstr, _Outptr_ SAFEARRAY ** ppsa); -_Check_return_ -WINOLEAUTAPI BstrFromVector (_In_ SAFEARRAY *psa, _Out_ BSTR *pbstr); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -/*---------------------------------------------------------------------*/ -/* Variant API Flags */ -/*---------------------------------------------------------------------*/ - -/* Any of the coersion functions that converts either from or to a string - * takes an additional lcid and dwFlags arguments. The lcid argument allows - * locale specific parsing to occur. The dwFlags allow additional function - * specific condition to occur. All function that accept the dwFlags argument - * can include either 0 or LOCALE_NOUSEROVERRIDE flag. - */ - -/* The VarDateFromStr and VarBstrFromDate functions also accept the - * VAR_TIMEVALUEONLY and VAR_DATEVALUEONLY flags - */ -#define VAR_TIMEVALUEONLY ((DWORD)0x00000001) /* return time value */ -#define VAR_DATEVALUEONLY ((DWORD)0x00000002) /* return date value */ - -/* VarDateFromUdate() only */ -#define VAR_VALIDDATE ((DWORD)0x00000004) - -/* Accepted by all date & format APIs */ -#define VAR_CALENDAR_HIJRI ((DWORD)0x00000008) /* use Hijri calender */ - -/* Booleans can optionally be accepted in localized form. Pass VAR_LOCALBOOL - * into VarBoolFromStr and VarBstrFromBool to use localized boolean names - */ -#define VAR_LOCALBOOL ((DWORD)0x00000010) - -/* When passed into VarFormat and VarFormatFromTokens, prevents substitution - * of formats in the case where a string is passed in that can not be - * coverted into the desired type. (for ex, 'Format("Hello", "General Number")') - */ -#define VAR_FORMAT_NOSUBSTITUTE ((DWORD)0x00000020) - -/* - * For VarBstrFromDate only - forces years to be 4 digits rather than shortening - * to 2-digits when the years is in the date window. - */ -#define VAR_FOURDIGITYEARS ((DWORD)0x00000040) - -/* - * Use NLS functions to format date, currency, time, and number. - */ -#ifndef LOCALE_USE_NLS -#define LOCALE_USE_NLS 0x10000000 -#endif - -// SOUTHASIA START -/* SOUTHASIA - * For VarBstrFromDate only - forces years to be 4 digits rather than shortening - * to 2-digits when the years is in the date window. - */ -#define VAR_CALENDAR_THAI ((DWORD)0x00000080) -#define VAR_CALENDAR_GREGORIAN ((DWORD)0x00000100) -//SOUTHASIA END - -#define VTDATEGRE_MAX 2958465 /* Dec 31, 9999, 0:0:0 in Gregorain Calendar */ -#define VTDATEGRE_MIN -657434 /* Jan 1, 100, 0:0:0 in Gregorain Calendar */ -/*---------------------------------------------------------------------*/ -/* VARTYPE Coercion API */ -/*---------------------------------------------------------------------*/ - -/* Note: The routines that convert *from* a string are defined - * to take a OLECHAR* rather than a BSTR because no allocation is - * required, and this makes the routines a bit more generic. - * They may of course still be passed a BSTR as the strIn param. - */ - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -WINOLEAUTAPI VarUI1FromI2(SHORT sIn, _Out_ BYTE * pbOut); -WINOLEAUTAPI VarUI1FromI4(LONG lIn, _Out_ BYTE * pbOut); -WINOLEAUTAPI VarUI1FromI8(LONG64 i64In, _Out_ BYTE FAR* pbOut); -WINOLEAUTAPI VarUI1FromR4(FLOAT fltIn, _Out_ BYTE * pbOut); -WINOLEAUTAPI VarUI1FromR8(DOUBLE dblIn, _Out_ BYTE * pbOut); -WINOLEAUTAPI VarUI1FromCy(CY cyIn, _Out_ BYTE * pbOut); -WINOLEAUTAPI VarUI1FromDate(DATE dateIn, _Out_ BYTE * pbOut); -WINOLEAUTAPI VarUI1FromStr(_In_ LPCOLESTR strIn, LCID lcid, ULONG dwFlags, _Out_ BYTE * pbOut); -WINOLEAUTAPI VarUI1FromDisp(IDispatch * pdispIn, LCID lcid, _Out_ BYTE * pbOut); -WINOLEAUTAPI VarUI1FromBool(VARIANT_BOOL boolIn, _Out_ BYTE * pbOut); -WINOLEAUTAPI VarUI1FromI1(CHAR cIn, _Out_ BYTE *pbOut); -WINOLEAUTAPI VarUI1FromUI2(USHORT uiIn, _Out_ BYTE *pbOut); -WINOLEAUTAPI VarUI1FromUI4(ULONG ulIn, _Out_ BYTE *pbOut); -WINOLEAUTAPI VarUI1FromUI8(ULONG64 ui64In, _Out_ BYTE FAR* pbOut); -WINOLEAUTAPI VarUI1FromDec(_In_ const DECIMAL *pdecIn, _Out_ BYTE *pbOut); - -WINOLEAUTAPI VarI2FromUI1(BYTE bIn, _Out_ SHORT * psOut); -WINOLEAUTAPI VarI2FromI4(LONG lIn, _Out_ SHORT * psOut); -WINOLEAUTAPI VarI2FromI8(LONG64 i64In, _Out_ SHORT FAR* psOut); -WINOLEAUTAPI VarI2FromR4(FLOAT fltIn, _Out_ SHORT * psOut); -WINOLEAUTAPI VarI2FromR8(DOUBLE dblIn, _Out_ SHORT * psOut); -WINOLEAUTAPI VarI2FromCy(CY cyIn, SHORT * psOut); -WINOLEAUTAPI VarI2FromDate(DATE dateIn, _Out_ SHORT * psOut); -WINOLEAUTAPI VarI2FromStr(_In_ LPCOLESTR strIn, LCID lcid, ULONG dwFlags, _Out_ SHORT * psOut); -WINOLEAUTAPI VarI2FromDisp(IDispatch * pdispIn, LCID lcid, _Out_ SHORT * psOut); -WINOLEAUTAPI VarI2FromBool(VARIANT_BOOL boolIn, _Out_ SHORT * psOut); -WINOLEAUTAPI VarI2FromI1(CHAR cIn, _Out_ SHORT *psOut); -WINOLEAUTAPI VarI2FromUI2(USHORT uiIn, _Out_ SHORT *psOut); -WINOLEAUTAPI VarI2FromUI4(ULONG ulIn, _Out_ SHORT *psOut); -WINOLEAUTAPI VarI2FromUI8(ULONG64 ui64In, _Out_ SHORT FAR* psOut); -WINOLEAUTAPI VarI2FromDec(_In_ const DECIMAL *pdecIn, _Out_ SHORT *psOut); - -WINOLEAUTAPI VarI4FromUI1(BYTE bIn, _Out_ LONG * plOut); -WINOLEAUTAPI VarI4FromI2(SHORT sIn, _Out_ LONG * plOut); -WINOLEAUTAPI VarI4FromI8(LONG64 i64In, _Out_ LONG FAR* plOut); -WINOLEAUTAPI VarI4FromR4(FLOAT fltIn, _Out_ LONG * plOut); -WINOLEAUTAPI VarI4FromR8(DOUBLE dblIn, _Out_ LONG * plOut); -WINOLEAUTAPI VarI4FromCy(CY cyIn, _Out_ LONG * plOut); -WINOLEAUTAPI VarI4FromDate(DATE dateIn, _Out_ LONG * plOut); -WINOLEAUTAPI VarI4FromStr(_In_ LPCOLESTR strIn, LCID lcid, ULONG dwFlags, _Out_ LONG * plOut); -WINOLEAUTAPI VarI4FromDisp(IDispatch * pdispIn, _In_ LCID lcid, _Out_ LONG * plOut); -WINOLEAUTAPI VarI4FromBool(VARIANT_BOOL boolIn, _Out_ LONG * plOut); -WINOLEAUTAPI VarI4FromI1(CHAR cIn, _Out_ LONG *plOut); -WINOLEAUTAPI VarI4FromUI2(USHORT uiIn, _Out_ LONG *plOut); -WINOLEAUTAPI VarI4FromUI4(ULONG ulIn, _Out_ LONG *plOut); -WINOLEAUTAPI VarI4FromUI8(ULONG64 ui64In, _Out_ LONG FAR* plOut); -WINOLEAUTAPI VarI4FromDec(_In_ const DECIMAL *pdecIn, _Out_ LONG *plOut); - -/******************************************/ - -WINOLEAUTAPI VarI8FromUI1(BYTE bIn, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromI2(SHORT sIn, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromR4(FLOAT fltIn, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromR8(DOUBLE dblIn, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromCy(_In_ CY cyIn, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromDate(DATE dateIn, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromStr(_In_ LPCOLESTR strIn, _In_ LCID lcid, _In_ ULONG dwFlags, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromDisp(IDispatch FAR* pdispIn, _In_ LCID lcid, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromBool(VARIANT_BOOL boolIn, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromI1(CHAR cIn, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromUI2(USHORT uiIn, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromUI4(ULONG ulIn, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromUI8(ULONG64 ui64In, _Out_ LONG64 FAR* pi64Out); -WINOLEAUTAPI VarI8FromDec(_In_ const DECIMAL *pdecIn, _Out_ LONG64 FAR* pi64Out); - -/*********************/ - - - -WINOLEAUTAPI VarR4FromUI1(BYTE bIn, _Out_ FLOAT * pfltOut); -WINOLEAUTAPI VarR4FromI2(SHORT sIn, _Out_ FLOAT * pfltOut); -WINOLEAUTAPI VarR4FromI4(LONG lIn, _Out_ FLOAT * pfltOut); -WINOLEAUTAPI VarR4FromI8(LONG64 i64In, _Out_ FLOAT FAR* pfltOut); -WINOLEAUTAPI VarR4FromR8(DOUBLE dblIn, _Out_ FLOAT * pfltOut); -WINOLEAUTAPI VarR4FromCy(CY cyIn, FLOAT * pfltOut); -WINOLEAUTAPI VarR4FromDate(DATE dateIn, _Out_ FLOAT * pfltOut); -WINOLEAUTAPI VarR4FromStr(_In_ LPCOLESTR strIn, LCID lcid, ULONG dwFlags, _Out_ FLOAT *pfltOut); -WINOLEAUTAPI VarR4FromDisp(IDispatch * pdispIn, LCID lcid, _Out_ FLOAT * pfltOut); -WINOLEAUTAPI VarR4FromBool(VARIANT_BOOL boolIn, _Out_ FLOAT * pfltOut); -WINOLEAUTAPI VarR4FromI1(CHAR cIn, _Out_ FLOAT *pfltOut); -WINOLEAUTAPI VarR4FromUI2(USHORT uiIn, _Out_ FLOAT *pfltOut); -WINOLEAUTAPI VarR4FromUI4(ULONG ulIn, _Out_ FLOAT *pfltOut); -WINOLEAUTAPI VarR4FromUI8(ULONG64 ui64In, _Out_ FLOAT FAR* pfltOut); -WINOLEAUTAPI VarR4FromDec(_In_ const DECIMAL *pdecIn, _Out_ FLOAT *pfltOut); - -WINOLEAUTAPI VarR8FromUI1(BYTE bIn, _Out_ DOUBLE * pdblOut); -WINOLEAUTAPI VarR8FromI2(SHORT sIn, _Out_ DOUBLE * pdblOut); -WINOLEAUTAPI VarR8FromI4(LONG lIn, _Out_ DOUBLE * pdblOut); -WINOLEAUTAPI VarR8FromI8(LONG64 i64In, _Out_ DOUBLE FAR* pdblOut); -WINOLEAUTAPI VarR8FromR4(FLOAT fltIn, _Out_ DOUBLE * pdblOut); -WINOLEAUTAPI VarR8FromCy(CY cyIn, DOUBLE * pdblOut); -WINOLEAUTAPI VarR8FromDate(DATE dateIn, _Out_ DOUBLE * pdblOut); -WINOLEAUTAPI VarR8FromStr(_In_ LPCOLESTR strIn, LCID lcid, ULONG dwFlags, _Out_ DOUBLE *pdblOut); -WINOLEAUTAPI VarR8FromDisp(IDispatch * pdispIn, LCID lcid, _Out_ DOUBLE * pdblOut); -WINOLEAUTAPI VarR8FromBool(VARIANT_BOOL boolIn, _Out_ DOUBLE * pdblOut); -WINOLEAUTAPI VarR8FromI1(CHAR cIn, DOUBLE *pdblOut); -WINOLEAUTAPI VarR8FromUI2(USHORT uiIn, _Out_ DOUBLE *pdblOut); -WINOLEAUTAPI VarR8FromUI4(ULONG ulIn, _Out_ DOUBLE *pdblOut); -WINOLEAUTAPI VarR8FromUI8(ULONG64 ui64In, _Out_ DOUBLE FAR* pdblOut); -WINOLEAUTAPI VarR8FromDec(_In_ const DECIMAL *pdecIn, _Out_ DOUBLE *pdblOut); - -WINOLEAUTAPI VarDateFromUI1(BYTE bIn, _Out_ DATE * pdateOut); -WINOLEAUTAPI VarDateFromI2(SHORT sIn, _Out_ DATE * pdateOut); -WINOLEAUTAPI VarDateFromI4(LONG lIn, _Out_ DATE * pdateOut); -WINOLEAUTAPI VarDateFromI8(LONG64 i64In, _Out_ DATE FAR* pdateOut); -WINOLEAUTAPI VarDateFromR4(FLOAT fltIn, _Out_ DATE * pdateOut); -WINOLEAUTAPI VarDateFromR8(DOUBLE dblIn, _Out_ DATE * pdateOut); -WINOLEAUTAPI VarDateFromCy(CY cyIn, _Out_ DATE * pdateOut); -WINOLEAUTAPI VarDateFromStr(_In_ LPCOLESTR strIn, _In_ LCID lcid, _In_ ULONG dwFlags, _Out_ DATE *pdateOut); -WINOLEAUTAPI VarDateFromDisp(IDispatch * pdispIn, LCID lcid, _Out_ DATE * pdateOut); -WINOLEAUTAPI VarDateFromBool(VARIANT_BOOL boolIn, _Out_ DATE * pdateOut); -WINOLEAUTAPI VarDateFromI1(CHAR cIn, _Out_ DATE *pdateOut); -WINOLEAUTAPI VarDateFromUI2(USHORT uiIn, _Out_ DATE *pdateOut); -WINOLEAUTAPI VarDateFromUI4(ULONG ulIn, _Out_ DATE *pdateOut); -WINOLEAUTAPI VarDateFromUI8(ULONG64 ui64In, _Out_ DATE FAR* pdateOut); -WINOLEAUTAPI VarDateFromDec(_In_ const DECIMAL *pdecIn, _Out_ DATE *pdateOut); - -WINOLEAUTAPI VarCyFromUI1(BYTE bIn, _Out_ CY * pcyOut); -WINOLEAUTAPI VarCyFromI2(SHORT sIn, _Out_ CY * pcyOut); -WINOLEAUTAPI VarCyFromI4(LONG lIn, _Out_ CY * pcyOut); -WINOLEAUTAPI VarCyFromI8(LONG64 i64In, _Out_ CY FAR* pcyOut); -WINOLEAUTAPI VarCyFromR4(FLOAT fltIn, _Out_ CY * pcyOut); -WINOLEAUTAPI VarCyFromR8(DOUBLE dblIn, _Out_ CY * pcyOut); -WINOLEAUTAPI VarCyFromDate(DATE dateIn, _Out_ CY * pcyOut); -WINOLEAUTAPI VarCyFromStr(_In_ LPCOLESTR strIn, _In_ LCID lcid, _In_ ULONG dwFlags, _Out_ CY * pcyOut); -WINOLEAUTAPI VarCyFromDisp(_In_ IDispatch * pdispIn, LCID lcid, _Out_ CY * pcyOut); -WINOLEAUTAPI VarCyFromBool(VARIANT_BOOL boolIn, _Out_ CY * pcyOut); -WINOLEAUTAPI VarCyFromI1(CHAR cIn, _Out_ CY *pcyOut); -WINOLEAUTAPI VarCyFromUI2(USHORT uiIn, _Out_ CY *pcyOut); -WINOLEAUTAPI VarCyFromUI4(ULONG ulIn, _Out_ CY *pcyOut); -WINOLEAUTAPI VarCyFromUI8(ULONG64 ui64In, _Out_ CY FAR* pcyOut); -WINOLEAUTAPI VarCyFromDec(_In_ const DECIMAL *pdecIn, _Out_ CY *pcyOut); - -WINOLEAUTAPI VarBstrFromUI1(BYTE bVal, LCID lcid, ULONG dwFlags, _Out_ BSTR * pbstrOut); -WINOLEAUTAPI VarBstrFromI2(SHORT iVal, LCID lcid, ULONG dwFlags, _Out_ BSTR * pbstrOut); -WINOLEAUTAPI VarBstrFromI4(LONG lIn, LCID lcid, ULONG dwFlags, _Out_ BSTR * pbstrOut); -WINOLEAUTAPI VarBstrFromI8(LONG64 i64In, LCID lcid, ULONG dwFlags, _Out_ BSTR FAR* pbstrOut); -WINOLEAUTAPI VarBstrFromR4(FLOAT fltIn, LCID lcid, ULONG dwFlags, _Out_ BSTR * pbstrOut); -WINOLEAUTAPI VarBstrFromR8(DOUBLE dblIn, LCID lcid, ULONG dwFlags, _Out_ BSTR * pbstrOut); -WINOLEAUTAPI VarBstrFromCy(CY cyIn, LCID lcid, ULONG dwFlags, _Out_ BSTR * pbstrOut); -WINOLEAUTAPI VarBstrFromDate(_In_ DATE dateIn, _In_ LCID lcid, _In_ ULONG dwFlags, _Out_ BSTR * pbstrOut); -WINOLEAUTAPI VarBstrFromDisp(IDispatch * pdispIn, LCID lcid, ULONG dwFlags, _Out_ BSTR * pbstrOut); -WINOLEAUTAPI VarBstrFromBool(VARIANT_BOOL boolIn, LCID lcid, ULONG dwFlags, _Out_ BSTR * pbstrOut); -WINOLEAUTAPI VarBstrFromI1(CHAR cIn, LCID lcid, ULONG dwFlags, _Out_ BSTR *pbstrOut); -WINOLEAUTAPI VarBstrFromUI2(USHORT uiIn, LCID lcid, ULONG dwFlags, _Out_ BSTR *pbstrOut); -WINOLEAUTAPI VarBstrFromUI4(ULONG ulIn, LCID lcid, ULONG dwFlags, _Out_ BSTR *pbstrOut); -WINOLEAUTAPI VarBstrFromUI8(ULONG64 ui64In, LCID lcid, ULONG dwFlags, _Out_ BSTR FAR* pbstrOut); -WINOLEAUTAPI VarBstrFromDec(_In_ const DECIMAL *pdecIn, _In_ LCID lcid, _In_ ULONG dwFlags, _Out_ BSTR *pbstrOut); - -WINOLEAUTAPI VarBoolFromUI1(BYTE bIn, _Out_ VARIANT_BOOL * pboolOut); -_Check_return_ WINOLEAUTAPI VarBoolFromI2(_In_ SHORT sIn, _Out_ VARIANT_BOOL * pboolOut); -WINOLEAUTAPI VarBoolFromI4(LONG lIn, _Out_ VARIANT_BOOL * pboolOut); -WINOLEAUTAPI VarBoolFromI8(LONG64 i64In, _Out_ VARIANT_BOOL FAR* pboolOut); -WINOLEAUTAPI VarBoolFromR4(FLOAT fltIn, _Out_ VARIANT_BOOL * pboolOut); -WINOLEAUTAPI VarBoolFromR8(DOUBLE dblIn, _Out_ VARIANT_BOOL * pboolOut); -WINOLEAUTAPI VarBoolFromDate(DATE dateIn, _Out_ VARIANT_BOOL * pboolOut); -WINOLEAUTAPI VarBoolFromCy(CY cyIn, _Out_ VARIANT_BOOL * pboolOut); -WINOLEAUTAPI VarBoolFromStr(_In_ LPCOLESTR strIn, LCID lcid, ULONG dwFlags, _Out_ VARIANT_BOOL * pboolOut); -WINOLEAUTAPI VarBoolFromDisp(IDispatch * pdispIn, LCID lcid, _Out_ VARIANT_BOOL * pboolOut); -WINOLEAUTAPI VarBoolFromI1(CHAR cIn, _Out_ VARIANT_BOOL *pboolOut); -WINOLEAUTAPI VarBoolFromUI2(USHORT uiIn, _Out_ VARIANT_BOOL *pboolOut); -WINOLEAUTAPI VarBoolFromUI4(ULONG ulIn, _Out_ VARIANT_BOOL *pboolOut); -WINOLEAUTAPI VarBoolFromUI8(ULONG64 i64In, _Out_ VARIANT_BOOL FAR* pboolOut); -WINOLEAUTAPI VarBoolFromDec(_In_ const DECIMAL *pdecIn, _Out_ VARIANT_BOOL *pboolOut); - -WINOLEAUTAPI -VarI1FromUI1( - _In_ BYTE bIn, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromI2( - _In_ SHORT uiIn, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromI4( - _In_ LONG lIn, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromI8( - _In_ LONG64 i64In, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromR4( - _In_ FLOAT fltIn, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromR8( - _In_ DOUBLE dblIn, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromDate( - _In_ DATE dateIn, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromCy( - _In_ CY cyIn, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromStr( - _In_ LPCOLESTR strIn, - _In_ LCID lcid, - _In_ ULONG dwFlags, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromDisp( - _In_ IDispatch *pdispIn, - _In_ LCID lcid, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromBool( - _In_ VARIANT_BOOL boolIn, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromUI2( - _In_ USHORT uiIn, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromUI4( - _In_ ULONG ulIn, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromUI8( - _In_ ULONG64 i64In, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI -VarI1FromDec( - _In_ const DECIMAL *pdecIn, - _Out_ CHAR *pcOut - ); - -WINOLEAUTAPI VarUI2FromUI1(BYTE bIn, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromI2(SHORT uiIn, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromI4(LONG lIn, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromI8(LONG64 i64In, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromR4(FLOAT fltIn, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromR8(DOUBLE dblIn, USHORT *puiOut); -WINOLEAUTAPI VarUI2FromDate(DATE dateIn, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromCy(CY cyIn, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromStr(_In_ LPCOLESTR strIn, _In_ LCID lcid, _In_ ULONG dwFlags, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromDisp(_In_ IDispatch *pdispIn, LCID lcid, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromBool(VARIANT_BOOL boolIn, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromI1(CHAR cIn, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromUI4(ULONG ulIn, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromUI8(ULONG64 i64In, _Out_ USHORT *puiOut); -WINOLEAUTAPI VarUI2FromDec(_In_ const DECIMAL *pdecIn, _Out_ USHORT *puiOut); - -WINOLEAUTAPI VarUI4FromUI1(BYTE bIn, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromI2(_In_ SHORT uiIn, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromI4(LONG lIn, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromI8(LONG64 i64In, _Out_ ULONG *plOut); -WINOLEAUTAPI VarUI4FromR4(FLOAT fltIn, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromR8(DOUBLE dblIn, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromDate(DATE dateIn, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromCy(CY cyIn, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromStr(_In_ LPCOLESTR strIn, _In_ LCID lcid, _In_ ULONG dwFlags, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromDisp(_In_ IDispatch *pdispIn, LCID lcid, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromBool(VARIANT_BOOL boolIn, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromI1(CHAR cIn, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromUI2(USHORT uiIn, _Out_ ULONG *pulOut); -WINOLEAUTAPI VarUI4FromUI8(ULONG64 ui64In, _Out_ ULONG *plOut); -WINOLEAUTAPI VarUI4FromDec(_In_ const DECIMAL *pdecIn, _Out_ ULONG *pulOut); - -/******************************************/ - -WINOLEAUTAPI VarUI8FromUI1(BYTE bIn, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromI2(SHORT sIn, _Out_ ULONG64 FAR* pi64Out); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -WINOLEAUTAPI VarUI8FromI4(LONG lIn, _Out_ ULONG64 FAR* pi64Out); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -WINOLEAUTAPI VarUI8FromI8(LONG64 ui64In, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromR4(FLOAT fltIn, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromR8(DOUBLE dblIn, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromCy(CY cyIn, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromDate(DATE dateIn, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromStr(_In_ LPCOLESTR strIn, _In_ LCID lcid, _In_ ULONG dwFlags, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromDisp(_In_ IDispatch FAR* pdispIn, LCID lcid, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromBool(VARIANT_BOOL boolIn, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromI1(CHAR cIn, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromUI2(USHORT uiIn, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromUI4(ULONG ulIn, _Out_ ULONG64 FAR* pi64Out); -WINOLEAUTAPI VarUI8FromDec(_In_ const DECIMAL *pdecIn, _Out_ ULONG64 FAR* pi64Out); - -/*********************/ - - - - -WINOLEAUTAPI VarDecFromUI1(_In_ BYTE bIn, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromI2(_In_ SHORT uiIn, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromI4(_In_ LONG lIn, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromI8(LONG64 i64In, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromR4(_In_ FLOAT fltIn, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromR8(_In_ DOUBLE dblIn, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromDate(_In_ DATE dateIn, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromCy(_In_ CY cyIn, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromStr(_In_ LPCOLESTR strIn, _In_ LCID lcid, _In_ ULONG dwFlags, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromDisp(_In_ IDispatch *pdispIn, _In_ LCID lcid, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromBool(_In_ VARIANT_BOOL boolIn, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromI1(_In_ CHAR cIn, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromUI2(_In_ USHORT uiIn, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromUI4(_In_ ULONG ulIn, _Out_ DECIMAL *pdecOut); -WINOLEAUTAPI VarDecFromUI8(ULONG64 ui64In, _Out_ DECIMAL *pdecOut); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#define VarUI4FromUI4(in, pOut) (*(pOut) = (in)) -#define VarI4FromI4(in, pOut) (*(pOut) = (in)) - - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -WINOLEAUTAPI VarI4FromI8(LONG64 i64In, _Out_ LONG *plOut); -WINOLEAUTAPI VarI4FromUI8(ULONG64 ui64In, _Out_ LONG *plOut); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#define VarUI8FromUI8(in, pOut) (*(pOut) = (in)) -#define VarI8FromI8(in, pOut) (*(pOut) = (in)) - - -#define VarUI1FromInt VarUI1FromI4 -#define VarUI1FromUint VarUI1FromUI4 -#define VarI2FromInt VarI2FromI4 -#define VarI2FromUint VarI2FromUI4 - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -#define VarI4FromInt VarI4FromI4 - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#define VarI4FromUint VarI4FromUI4 -#define VarI8FromUint VarI8FromUI4 -#define VarR4FromInt VarR4FromI4 -#define VarR4FromUint VarR4FromUI4 -#define VarR8FromInt VarR8FromI4 -#define VarR8FromUint VarR8FromUI4 -#define VarDateFromInt VarDateFromI4 -#define VarDateFromUint VarDateFromUI4 -#define VarCyFromInt VarCyFromI4 -#define VarCyFromUint VarCyFromUI4 -#define VarBstrFromInt VarBstrFromI4 -#define VarBstrFromUint VarBstrFromUI4 -#define VarBoolFromInt VarBoolFromI4 -#define VarBoolFromUint VarBoolFromUI4 -#define VarI1FromInt VarI1FromI4 -#define VarI1FromUint VarI1FromUI4 -#define VarUI2FromInt VarUI2FromI4 -#define VarUI2FromUint VarUI2FromUI4 -#define VarUI4FromInt VarUI4FromI4 -#define VarUI4FromUint VarUI4FromUI4 -#define VarDecFromInt VarDecFromI4 -#define VarDecFromUint VarDecFromUI4 -#define VarIntFromUI1 VarI4FromUI1 -#define VarIntFromI2 VarI4FromI2 -#define VarIntFromI4 VarI4FromI4 -#define VarIntFromI8 VarI4FromI8 -#define VarIntFromR4 VarI4FromR4 -#define VarIntFromR8 VarI4FromR8 -#define VarIntFromDate VarI4FromDate -#define VarIntFromCy VarI4FromCy -#define VarIntFromStr VarI4FromStr -#define VarIntFromDisp VarI4FromDisp -#define VarIntFromBool VarI4FromBool -#define VarIntFromI1 VarI4FromI1 -#define VarIntFromUI2 VarI4FromUI2 -#define VarIntFromUI4 VarI4FromUI4 -#define VarIntFromUI8 VarI4FromUI8 -#define VarIntFromDec VarI4FromDec -#define VarIntFromUint VarI4FromUI4 -#define VarUintFromUI1 VarUI4FromUI1 -#define VarUintFromI2 VarUI4FromI2 -#define VarUintFromI4 VarUI4FromI4 -#define VarUintFromI8 VarUI4FromI8 -#define VarUintFromR4 VarUI4FromR4 -#define VarUintFromR8 VarUI4FromR8 -#define VarUintFromDate VarUI4FromDate -#define VarUintFromCy VarUI4FromCy -#define VarUintFromStr VarUI4FromStr -#define VarUintFromDisp VarUI4FromDisp -#define VarUintFromBool VarUI4FromBool -#define VarUintFromI1 VarUI4FromI1 -#define VarUintFromUI2 VarUI4FromUI2 -#define VarUintFromUI4 VarUI4FromUI4 -#define VarUintFromUI8 VarUI4FromUI8 -#define VarUintFromDec VarUI4FromDec -#define VarUintFromInt VarUI4FromI4 - -/* Mac Note: On the Mac, the coersion functions support the - * Symantec C++ calling convention for float/double. To support - * float/double arguments compiled with the MPW C compiler, - * use the following APIs to move MPW float/double values into - * a VARIANT. - */ - -/*---------------------------------------------------------------------*/ -/* New VARIANT <-> string parsing functions */ -/*---------------------------------------------------------------------*/ - -typedef struct { - INT cDig; - ULONG dwInFlags; - ULONG dwOutFlags; - INT cchUsed; - INT nBaseShift; - INT nPwr10; -} NUMPARSE; - -/* flags used by both dwInFlags and dwOutFlags: - */ -#define NUMPRS_LEADING_WHITE 0x0001 -#define NUMPRS_TRAILING_WHITE 0x0002 -#define NUMPRS_LEADING_PLUS 0x0004 -#define NUMPRS_TRAILING_PLUS 0x0008 -#define NUMPRS_LEADING_MINUS 0x0010 -#define NUMPRS_TRAILING_MINUS 0x0020 -#define NUMPRS_HEX_OCT 0x0040 -#define NUMPRS_PARENS 0x0080 -#define NUMPRS_DECIMAL 0x0100 -#define NUMPRS_THOUSANDS 0x0200 -#define NUMPRS_CURRENCY 0x0400 -#define NUMPRS_EXPONENT 0x0800 -#define NUMPRS_USE_ALL 0x1000 -#define NUMPRS_STD 0x1FFF - -/* flags used by dwOutFlags only: - */ -#define NUMPRS_NEG 0x10000 -#define NUMPRS_INEXACT 0x20000 - -/* flags used by VarNumFromParseNum to indicate acceptable result types: - */ -#define VTBIT_I1 (1 << VT_I1) -#define VTBIT_UI1 (1 << VT_UI1) -#define VTBIT_I2 (1 << VT_I2) -#define VTBIT_UI2 (1 << VT_UI2) -#define VTBIT_I4 (1 << VT_I4) -#define VTBIT_UI4 (1 << VT_UI4) -#define VTBIT_I8 (1 << VT_I8) -#define VTBIT_UI8 (1 << VT_UI8) -#define VTBIT_R4 (1 << VT_R4) -#define VTBIT_R8 (1 << VT_R8) -#define VTBIT_CY (1 << VT_CY) -#define VTBIT_DECIMAL (1 << VT_DECIMAL) - - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ -WINOLEAUTAPI VarParseNumFromStr(_In_ LPCOLESTR strIn, _In_ LCID lcid, _In_ ULONG dwFlags, - _Inout_ NUMPARSE * pnumprs, _Out_writes_(pnumprs->cDig) BYTE * rgbDig); - -_Check_return_ -WINOLEAUTAPI VarNumFromParseNum(_In_ NUMPARSE * pnumprs, _In_reads_(pnumprs->cDig) BYTE * rgbDig, - _In_ ULONG dwVtBits, _Out_ VARIANT * pvar); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -/*---------------------------------------------------------------------*/ -/* VARTYPE Math API */ -/*---------------------------------------------------------------------*/ - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -STDAPI VarAdd(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarAnd(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarCat(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarDiv(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarEqv(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarIdiv(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarImp(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarMod(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarMul(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarOr(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarPow(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarSub(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); -STDAPI VarXor(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _Out_ LPVARIANT pvarResult); - -STDAPI VarAbs(_In_ LPVARIANT pvarIn, _Out_ LPVARIANT pvarResult); -STDAPI VarFix(_In_ LPVARIANT pvarIn, _Out_ LPVARIANT pvarResult); -STDAPI VarInt(_In_ LPVARIANT pvarIn, _Out_ LPVARIANT pvarResult); -STDAPI VarNeg(_In_ LPVARIANT pvarIn, _Out_ LPVARIANT pvarResult); -STDAPI VarNot(_In_ LPVARIANT pvarIn, _Out_ LPVARIANT pvarResult); - -STDAPI VarRound(_In_ LPVARIANT pvarIn, _In_ int cDecimals, _Out_ LPVARIANT pvarResult); - -// dwFlags passed to CompareString if a string compare -STDAPI VarCmp(_In_ LPVARIANT pvarLeft, _In_ LPVARIANT pvarRight, _In_ LCID lcid, _In_ ULONG dwFlags); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#ifdef __cplusplus -extern "C++" { - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -// Add wrapper for old ATL headers to call -__inline -HRESULT -#if !defined(_M_CEE_PURE) -STDAPICALLTYPE -#endif -VarCmp(LPVARIANT pvarLeft, LPVARIANT pvarRight, LCID lcid) { - return VarCmp(pvarLeft, pvarRight, lcid, 0); -} - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -} // extern "C++" -#endif /* __cplusplus */ - - -// Decimal math -// - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -STDAPI VarDecAdd(_In_ LPDECIMAL pdecLeft, _In_ LPDECIMAL pdecRight, _Out_ LPDECIMAL pdecResult); -STDAPI VarDecDiv(_In_ LPDECIMAL pdecLeft, _In_ LPDECIMAL pdecRight, _Out_ LPDECIMAL pdecResult); -STDAPI VarDecMul(_In_ LPDECIMAL pdecLeft, _In_ LPDECIMAL pdecRight, _Out_ LPDECIMAL pdecResult); -STDAPI VarDecSub(_In_ LPDECIMAL pdecLeft, _In_ LPDECIMAL pdecRight, _Out_ LPDECIMAL pdecResult); - -STDAPI VarDecAbs(_In_ LPDECIMAL pdecIn, _Out_ LPDECIMAL pdecResult); -STDAPI VarDecFix(_In_ LPDECIMAL pdecIn, _Out_ LPDECIMAL pdecResult); -STDAPI VarDecInt(_In_ LPDECIMAL pdecIn, _Out_ LPDECIMAL pdecResult); -STDAPI VarDecNeg(_In_ LPDECIMAL pdecIn, _Out_ LPDECIMAL pdecResult); - -STDAPI VarDecRound(_In_ LPDECIMAL pdecIn, int cDecimals, _Out_ LPDECIMAL pdecResult); - -STDAPI VarDecCmp(_In_ LPDECIMAL pdecLeft, _In_ LPDECIMAL pdecRight); -STDAPI VarDecCmpR8(_In_ LPDECIMAL pdecLeft, _In_ double dblRight); - - -// Currency math -// -STDAPI VarCyAdd(_In_ CY cyLeft, _In_ CY cyRight, _Out_ LPCY pcyResult); -STDAPI VarCyMul(_In_ CY cyLeft, _In_ CY cyRight, _Out_ LPCY pcyResult); -STDAPI VarCyMulI4(_In_ CY cyLeft, _In_ LONG lRight, _Out_ LPCY pcyResult); -STDAPI VarCyMulI8(_In_ CY cyLeft, _In_ LONG64 lRight, _Out_ LPCY pcyResult); -STDAPI VarCySub(_In_ CY cyLeft, _In_ CY cyRight, _Out_ LPCY pcyResult); - -STDAPI VarCyAbs(_In_ CY cyIn, _Out_ LPCY pcyResult); -STDAPI VarCyFix(_In_ CY cyIn, _Out_ LPCY pcyResult); -STDAPI VarCyInt(_In_ CY cyIn, _Out_ LPCY pcyResult); -STDAPI VarCyNeg(_In_ CY cyIn, _Out_ LPCY pcyResult); - -STDAPI VarCyRound(_In_ CY cyIn, _In_ int cDecimals, _Out_ LPCY pcyResult); - -STDAPI VarCyCmp(_In_ CY cyLeft, _In_ CY cyRight); -STDAPI VarCyCmpR8(_In_ CY cyLeft, _In_ double dblRight); - - -// Misc support functions -// -STDAPI VarBstrCat(_In_ BSTR bstrLeft, _In_ BSTR bstrRight, _Out_ LPBSTR pbstrResult); -STDAPI VarBstrCmp(_In_ BSTR bstrLeft, _In_ BSTR bstrRight, _In_ LCID lcid, _In_ ULONG dwFlags); // dwFlags passed to CompareString -STDAPI VarR8Pow(_In_ double dblLeft, _In_ double dblRight, _Out_ double *pdblResult); -STDAPI VarR4CmpR8(_In_ float fltLeft, _In_ double dblRight); -STDAPI VarR8Round(_In_ double dblIn, _In_ int cDecimals, _Out_ double *pdblResult); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -// Compare results. These are returned as a SUCCESS HResult. Subtracting -// one gives the usual values of -1 for Less Than, 0 for Equal To, +1 for -// Greater Than. -// -#define VARCMP_LT 0 -#define VARCMP_EQ 1 -#define VARCMP_GT 2 -#define VARCMP_NULL 3 - -// VT_HARDTYPE tells the compare routine that the argument is a literal or -// otherwise declared of that specific type. It causes comparison rules to -// change. For example, if a hard-type string is compared to a variant (not hard -// -type) number, the number is converted to string. If a hard-type number is -// compared to a variant string, the string is converted to number. If they're -// both variant, then number < string. -#define VT_HARDTYPE VT_RESERVED - -/*---------------------------------------------------------------------*/ -/* New date functions */ -/*---------------------------------------------------------------------*/ - -/* The UDATE structure is used with VarDateFromUdate() and VarUdateFromDate(). - * It represents an "unpacked date". - */ -typedef struct { - SYSTEMTIME st; - USHORT wDayOfYear; -} UDATE; - -/* APIs to "pack" and "unpack" dates. - * NOTE: Ex version of VarDateFromUdate obeys 2 digit year setting in - * control panel. - */ - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ -WINOLEAUTAPI VarDateFromUdate(_In_ UDATE *pudateIn, _In_ ULONG dwFlags, _Out_ DATE *pdateOut); -WINOLEAUTAPI VarDateFromUdateEx(_In_ UDATE *pudateIn, _In_ LCID lcid, _In_ ULONG dwFlags, _Out_ DATE *pdateOut); -_Check_return_ -WINOLEAUTAPI VarUdateFromDate(_In_ DATE dateIn, _In_ ULONG dwFlags, _Out_ UDATE *pudateOut); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -/* API to retrieve the secondary(altername) month names - Useful for Hijri, Polish and Russian alternate month names -*/ -_Check_return_ -WINOLEAUTAPI GetAltMonthNames(LCID lcid, _Outptr_result_buffer_maybenull_(13) LPOLESTR * * prgp); - -/*---------------------------------------------------------------------*/ -/* Format */ -/*---------------------------------------------------------------------*/ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -WINOLEAUTAPI VarFormat( - _In_ LPVARIANT pvarIn, - _In_opt_ LPOLESTR pstrFormat, - int iFirstDay, - int iFirstWeek, - ULONG dwFlags, - _Out_ BSTR *pbstrOut - ); - -WINOLEAUTAPI VarFormatDateTime( - _In_ LPVARIANT pvarIn, - int iNamedFormat, - ULONG dwFlags, - _Out_ BSTR *pbstrOut - ); - -WINOLEAUTAPI VarFormatNumber( - _In_ LPVARIANT pvarIn, - int iNumDig, - int iIncLead, - int iUseParens, - int iGroup, - ULONG dwFlags, - _Out_ BSTR *pbstrOut - ); - -WINOLEAUTAPI VarFormatPercent( - _In_ LPVARIANT pvarIn, - int iNumDig, - int iIncLead, - int iUseParens, - int iGroup, - ULONG dwFlags, - _Out_ BSTR *pbstrOut - ); - -WINOLEAUTAPI VarFormatCurrency( - _In_ LPVARIANT pvarIn, - int iNumDig, - int iIncLead, - int iUseParens, - int iGroup, - ULONG dwFlags, - _Out_ BSTR *pbstrOut - ); - -WINOLEAUTAPI VarWeekdayName( - int iWeekday, - int fAbbrev, - int iFirstDay, - ULONG dwFlags, - _Out_ BSTR *pbstrOut - ); - -WINOLEAUTAPI VarMonthName( - int iMonth, - int fAbbrev, - ULONG dwFlags, - _Out_ BSTR *pbstrOut - ); - -WINOLEAUTAPI VarFormatFromTokens( - _In_ LPVARIANT pvarIn, - _In_opt_ LPOLESTR pstrFormat, - _In_reads_(_Inexpressible_("from VarTokenizeFormatString")) LPBYTE pbTokCur, - ULONG dwFlags, - _Out_ BSTR *pbstrOut, - LCID lcid - ); - -WINOLEAUTAPI VarTokenizeFormatString( - _In_opt_ LPOLESTR pstrFormat, - _Inout_updates_(cbTok) LPBYTE rgbTok, - int cbTok, - int iFirstDay, - int iFirstWeek, - LCID lcid, - _In_opt_ int *pcbActual - ); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -/*---------------------------------------------------------------------*/ -/* ITypeLib */ -/*---------------------------------------------------------------------*/ - -typedef /* [unique] */ __RPC_unique_pointer ITypeLib *LPTYPELIB; - - -/*---------------------------------------------------------------------*/ -/* ITypeInfo */ -/*---------------------------------------------------------------------*/ - - -typedef LONG DISPID; -typedef DISPID MEMBERID; - -#define MEMBERID_NIL DISPID_UNKNOWN -#define ID_DEFAULTINST -2 - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -/* Flags for IDispatch::Invoke */ -#define DISPATCH_METHOD 0x1 -#define DISPATCH_PROPERTYGET 0x2 -#define DISPATCH_PROPERTYPUT 0x4 -#define DISPATCH_PROPERTYPUTREF 0x8 - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -typedef /* [unique] */ __RPC_unique_pointer ITypeInfo *LPTYPEINFO; - - -/*---------------------------------------------------------------------*/ -/* ITypeComp */ -/*---------------------------------------------------------------------*/ - -typedef /* [unique] */ __RPC_unique_pointer ITypeComp *LPTYPECOMP; - - -/*---------------------------------------------------------------------*/ -/* ICreateTypeLib */ -/*---------------------------------------------------------------------*/ - -typedef ICreateTypeLib * LPCREATETYPELIB; - -typedef ICreateTypeInfo * LPCREATETYPEINFO; - -/*---------------------------------------------------------------------*/ -/* TypeInfo API */ -/*---------------------------------------------------------------------*/ - -/* compute a 16bit hash value for the given name - */ -#if (defined (_WIN32) || defined (_WIN64)) -_Check_return_ -WINOLEAUTAPI_(ULONG) LHashValOfNameSysA(SYSKIND syskind, LCID lcid, - LPCSTR szName); -#endif - -_Check_return_ -WINOLEAUTAPI_(ULONG) -LHashValOfNameSys(SYSKIND syskind, LCID lcid, const OLECHAR * szName); - -#define LHashValOfName(lcid, szName) \ - LHashValOfNameSys(SYS_WIN32, lcid, szName) - -#define WHashValOfLHashVal(lhashval) \ - ((USHORT) (0x0000ffff & (lhashval))) - -#define IsHashValCompatible(lhashval1, lhashval2) \ - ((BOOL) ((0x00ff0000 & (lhashval1)) == (0x00ff0000 & (lhashval2)))) - -/* load the typelib from the file with the given filename - */ -WINOLEAUTAPI LoadTypeLib(_In_z_ LPCOLESTR szFile, ITypeLib ** pptlib); - -/* Control how a type library is registered - */ -typedef enum tagREGKIND -{ - REGKIND_DEFAULT, - REGKIND_REGISTER, - REGKIND_NONE -} REGKIND; - - -// Constants for specifying format in which TLB should be loaded -// (the default format is 32-bit on WIN32 and 64-bit on WIN64) -#define LOAD_TLB_AS_32BIT 0x20 -#define LOAD_TLB_AS_64BIT 0x40 -#define MASK_TO_RESET_TLB_BITS ~(LOAD_TLB_AS_32BIT | LOAD_TLB_AS_64BIT) - -_Check_return_ -WINOLEAUTAPI LoadTypeLibEx(LPCOLESTR szFile, REGKIND regkind, - ITypeLib ** pptlib); - -/* load registered typelib - */ -_Check_return_ -WINOLEAUTAPI LoadRegTypeLib(REFGUID rguid, WORD wVerMajor, WORD wVerMinor, - LCID lcid, ITypeLib ** pptlib); - -/* get path to registered typelib - */ -WINOLEAUTAPI QueryPathOfRegTypeLib(REFGUID guid, USHORT wMaj, USHORT wMin, - LCID lcid, _Out_ LPBSTR lpbstrPathName); - -/* add typelib to registry - */ -_Check_return_ -WINOLEAUTAPI RegisterTypeLib(ITypeLib * ptlib, _In_ LPCOLESTR szFullPath, - _In_opt_ LPCOLESTR szHelpDir); - -/* remove typelib from registry - */ - -_Check_return_ -WINOLEAUTAPI UnRegisterTypeLib(REFGUID libID, WORD wVerMajor, - WORD wVerMinor, LCID lcid, SYSKIND syskind); - -/* Registers a type library for use by the calling user. -*/ -WINOLEAUTAPI RegisterTypeLibForUser(ITypeLib *ptlib,_In_ OLECHAR *szFullPath, - _In_opt_ OLECHAR *szHelpDir); - -/* Removes type library information that was registered by using RegisterTypeLibForUser. -*/ -WINOLEAUTAPI UnRegisterTypeLibForUser( - REFGUID libID, - WORD wMajorVerNum, - WORD wMinorVerNum, - LCID lcid, - SYSKIND syskind); - -_Check_return_ -WINOLEAUTAPI CreateTypeLib(SYSKIND syskind, LPCOLESTR szFile, - ICreateTypeLib ** ppctlib); - -_Check_return_ -WINOLEAUTAPI CreateTypeLib2(SYSKIND syskind, LPCOLESTR szFile, - ICreateTypeLib2 **ppctlib); - - -/*---------------------------------------------------------------------*/ -/* IDispatch implementation support */ -/*---------------------------------------------------------------------*/ - -typedef /* [unique] */ __RPC_unique_pointer IDispatch *LPDISPATCH; - -typedef struct tagPARAMDATA { - OLECHAR * szName; /* parameter name */ - VARTYPE vt; /* parameter type */ -} PARAMDATA, * LPPARAMDATA; - -typedef struct tagMETHODDATA { - OLECHAR * szName; /* method name */ - PARAMDATA * ppdata; /* pointer to an array of PARAMDATAs */ - DISPID dispid; /* method ID */ - UINT iMeth; /* method index */ - CALLCONV cc; /* calling convention */ - UINT cArgs; /* count of arguments */ - WORD wFlags; /* same wFlags as on IDispatch::Invoke() */ - VARTYPE vtReturn; -} METHODDATA, * LPMETHODDATA; - -typedef struct tagINTERFACEDATA { - METHODDATA * pmethdata; /* pointer to an array of METHODDATAs */ - UINT cMembers; /* count of members */ -} INTERFACEDATA, * LPINTERFACEDATA; - - - -/* Locate the parameter indicated by the given position, and - * return it coerced to the given target VARTYPE (vtTarg). - */ -_Check_return_ -WINOLEAUTAPI DispGetParam( - _In_ DISPPARAMS * pdispparams, - UINT position, - VARTYPE vtTarg, - _Out_ VARIANT * pvarResult, - _Out_opt_ UINT * puArgErr - ); - -/* Automatic TypeInfo driven implementation of IDispatch::GetIDsOfNames() - */ -_Check_return_ WINOLEAUTAPI DispGetIDsOfNames(ITypeInfo * ptinfo, _In_reads_(cNames) LPOLESTR* rgszNames, - UINT cNames, _Out_writes_(cNames) DISPID * rgdispid); - -/* Automatic TypeInfo driven implementation of IDispatch::Invoke() - */ -_Check_return_ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -WINOLEAUTAPI DispInvoke(void * _this, ITypeInfo * ptinfo, DISPID dispidMember, - WORD wFlags, DISPPARAMS * pparams, VARIANT * pvarResult, - EXCEPINFO * pexcepinfo, UINT * puArgErr); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -/* Construct a TypeInfo from an interface data description - */ -_Check_return_ -WINOLEAUTAPI CreateDispTypeInfo(INTERFACEDATA * pidata, LCID lcid, - ITypeInfo ** pptinfo); - -/* Create an instance of the standard TypeInfo driven IDispatch - * implementation. - */ -_Check_return_ -WINOLEAUTAPI CreateStdDispatch(IUnknown * punkOuter, void * pvThis, - ITypeInfo * ptinfo, IUnknown ** ppunkStdDisp); - -/* Low-level helper for IDispatch::Invoke() provides machine independence - * for customized Invoke(). - */ -WINOLEAUTAPI DispCallFunc(_In_opt_ void * pvInstance, ULONG_PTR oVft, CALLCONV cc, - VARTYPE vtReturn, UINT cActuals, _In_reads_(cActuals) VARTYPE * prgvt, - _In_reads_(cActuals) VARIANTARG ** prgpvarg, _Out_ VARIANT * pvargResult); - - -/*---------------------------------------------------------------------*/ -/* Active Object Registration API */ -/*---------------------------------------------------------------------*/ - -/* flags for RegisterActiveObject */ -#define ACTIVEOBJECT_STRONG 0x0 -#define ACTIVEOBJECT_WEAK 0x1 - -_Check_return_ -WINOLEAUTAPI RegisterActiveObject(IUnknown * punk, REFCLSID rclsid, - DWORD dwFlags, DWORD * pdwRegister); - -WINOLEAUTAPI RevokeActiveObject(DWORD dwRegister, void * pvReserved); - -WINOLEAUTAPI GetActiveObject(REFCLSID rclsid, void * pvReserved, - IUnknown ** ppunk); - -/*---------------------------------------------------------------------*/ -/* ErrorInfo API */ -/*---------------------------------------------------------------------*/ - -WINOLEAUTAPI SetErrorInfo(_In_ ULONG dwReserved, _In_opt_ IErrorInfo * perrinfo); -_Check_return_ -WINOLEAUTAPI GetErrorInfo(_In_ ULONG dwReserved, _Outptr_ IErrorInfo ** pperrinfo); -_Check_return_ -WINOLEAUTAPI CreateErrorInfo(_Outptr_ ICreateErrorInfo ** pperrinfo); - -/*---------------------------------------------------------------------*/ -/* User Defined Data types support */ -/*---------------------------------------------------------------------*/ - -WINOLEAUTAPI GetRecordInfoFromTypeInfo(ITypeInfo * pTypeInfo, - IRecordInfo ** ppRecInfo); - -WINOLEAUTAPI GetRecordInfoFromGuids(REFGUID rGuidTypeLib, - ULONG uVerMajor, ULONG uVerMinor, LCID lcid, - REFGUID rGuidTypeInfo, IRecordInfo ** ppRecInfo); - -/*---------------------------------------------------------------------*/ -/* MISC API */ -/*---------------------------------------------------------------------*/ - -WINOLEAUTAPI_(ULONG) OaBuildVersion(void); - -WINOLEAUTAPI_(void) ClearCustData(LPCUSTDATA pCustData); - -#if (NTDDI_VERSION >= NTDDI_VISTASP1) -WINOLEAUTAPI_(void) OaEnablePerUserTLibRegistration(void); -#endif - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -// Declare variant access functions. - -#if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION) || (!defined(_MSC_EXTENSIONS) && !defined(_FORCENAMELESSUNION)) -#define V_UNION(X, Y) ((X)->n1.n2.n3.Y) -#define V_VT(X) ((X)->n1.n2.vt) -#define V_RECORDINFO(X) ((X)->n1.n2.n3.brecVal.pRecInfo) -#define V_RECORD(X) ((X)->n1.n2.n3.brecVal.pvRecord) -#else -#define V_UNION(X, Y) ((X)->Y) -#define V_VT(X) ((X)->vt) -#define V_RECORDINFO(X) ((X)->pRecInfo) -#define V_RECORD(X) ((X)->pvRecord) -#endif - -/* Variant access macros - */ -#define V_ISBYREF(X) (V_VT(X)&VT_BYREF) -#define V_ISARRAY(X) (V_VT(X)&VT_ARRAY) -#define V_ISVECTOR(X) (V_VT(X)&VT_VECTOR) -#define V_NONE(X) V_I2(X) - -#define V_UI1(X) V_UNION(X, bVal) -#define V_UI1REF(X) V_UNION(X, pbVal) -#define V_I2(X) V_UNION(X, iVal) -#define V_I2REF(X) V_UNION(X, piVal) -#define V_I4(X) V_UNION(X, lVal) -#define V_I4REF(X) V_UNION(X, plVal) -#define V_I8(X) V_UNION(X, llVal) -#define V_I8REF(X) V_UNION(X, pllVal) -#define V_R4(X) V_UNION(X, fltVal) -#define V_R4REF(X) V_UNION(X, pfltVal) -#define V_R8(X) V_UNION(X, dblVal) -#define V_R8REF(X) V_UNION(X, pdblVal) -#define V_I1(X) V_UNION(X, cVal) -#define V_I1REF(X) V_UNION(X, pcVal) -#define V_UI2(X) V_UNION(X, uiVal) -#define V_UI2REF(X) V_UNION(X, puiVal) -#define V_UI4(X) V_UNION(X, ulVal) -#define V_UI4REF(X) V_UNION(X, pulVal) -#define V_UI8(X) V_UNION(X, ullVal) -#define V_UI8REF(X) V_UNION(X, pullVal) -#define V_INT(X) V_UNION(X, intVal) -#define V_INTREF(X) V_UNION(X, pintVal) -#define V_UINT(X) V_UNION(X, uintVal) -#define V_UINTREF(X) V_UNION(X, puintVal) - -#ifdef _WIN64 -#define V_INT_PTR(X) V_UNION(X, llVal) -#define V_UINT_PTR(X) V_UNION(X, ullVal) -#define V_INT_PTRREF(X) V_UNION(X, pllVal) -#define V_UINT_PTRREF(X) V_UNION(X, pullVal) -#else -#define V_INT_PTR(X) V_UNION(X, lVal) -#define V_UINT_PTR(X) V_UNION(X, ulVal) -#define V_INT_PTRREF(X) V_UNION(X, plVal) -#define V_UINT_PTRREF(X) V_UNION(X, pulVal) -#endif - -#define V_CY(X) V_UNION(X, cyVal) -#define V_CYREF(X) V_UNION(X, pcyVal) -#define V_DATE(X) V_UNION(X, date) -#define V_DATEREF(X) V_UNION(X, pdate) -#define V_BSTR(X) V_UNION(X, bstrVal) -#define V_BSTRREF(X) V_UNION(X, pbstrVal) -#define V_DISPATCH(X) V_UNION(X, pdispVal) -#define V_DISPATCHREF(X) V_UNION(X, ppdispVal) -#define V_ERROR(X) V_UNION(X, scode) -#define V_ERRORREF(X) V_UNION(X, pscode) -#define V_BOOL(X) V_UNION(X, boolVal) -#define V_BOOLREF(X) V_UNION(X, pboolVal) -#define V_UNKNOWN(X) V_UNION(X, punkVal) -#define V_UNKNOWNREF(X) V_UNION(X, ppunkVal) -#define V_VARIANTREF(X) V_UNION(X, pvarVal) -#define V_ARRAY(X) V_UNION(X, parray) -#define V_ARRAYREF(X) V_UNION(X, pparray) -#define V_BYREF(X) V_UNION(X, byref) - -#define V_DECIMAL(X) V_UNION(X, decVal) -#define V_DECIMALREF(X) V_UNION(X, pdecVal) - -#ifndef RC_INVOKED -#include -#endif // RC_INVOKED - -#endif // __OLEAUTO_H__ - -#if _MSC_VER >= 1200 -#pragma warning(pop) -#endif diff --git a/src/custom/winsdk/include/um/PropIdl.h b/src/custom/winsdk/include/um/PropIdl.h deleted file mode 100644 index bd87181..0000000 --- a/src/custom/winsdk/include/um/PropIdl.h +++ /dev/null @@ -1,1319 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __propidl_h__ -#define __propidl_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IPropertyStorage_FWD_DEFINED__ -#define __IPropertyStorage_FWD_DEFINED__ -typedef interface IPropertyStorage IPropertyStorage; - -#endif /* __IPropertyStorage_FWD_DEFINED__ */ - - -#ifndef __IPropertySetStorage_FWD_DEFINED__ -#define __IPropertySetStorage_FWD_DEFINED__ -typedef interface IPropertySetStorage IPropertySetStorage; - -#endif /* __IPropertySetStorage_FWD_DEFINED__ */ - - -#ifndef __IEnumSTATPROPSTG_FWD_DEFINED__ -#define __IEnumSTATPROPSTG_FWD_DEFINED__ -typedef interface IEnumSTATPROPSTG IEnumSTATPROPSTG; - -#endif /* __IEnumSTATPROPSTG_FWD_DEFINED__ */ - - -#ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__ -#define __IEnumSTATPROPSETSTG_FWD_DEFINED__ -typedef interface IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG; - -#endif /* __IEnumSTATPROPSETSTG_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "objidl.h" -#include "oaidl.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_propidl_0000_0000 */ -/* [local] */ - -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -//-------------------------------------------------------------------------- -#if ( _MSC_VER >= 800 ) -#if _MSC_VER >= 1200 -#pragma warning(push) -#pragma warning(disable:4820) /* padding added after data member */ -#endif -#pragma warning(disable:4201) /* Nameless struct/union */ -#pragma warning(disable:4237) /* obsolete member named 'bool' */ -#endif -#if ( _MSC_VER >= 1020 ) -#pragma once -#endif -#include -#ifndef _PROPIDLBASE_ -#pragma region Application Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - - -typedef struct tagVersionedStream - { - GUID guidVersion; - IStream *pStream; - } VERSIONEDSTREAM; - -typedef struct tagVersionedStream *LPVERSIONEDSTREAM; - - -// Flags for IPropertySetStorage::Create -#define PROPSETFLAG_DEFAULT ( 0 ) - -#define PROPSETFLAG_NONSIMPLE ( 1 ) - -#define PROPSETFLAG_ANSI ( 2 ) - -// (This flag is only supported on StgCreatePropStg & StgOpenPropStg -#define PROPSETFLAG_UNBUFFERED ( 4 ) - -// (This flag causes a version-1 property set to be created -#define PROPSETFLAG_CASE_SENSITIVE ( 8 ) - - -// Flags for the reserved PID_BEHAVIOR property -#define PROPSET_BEHAVIOR_CASE_SENSITIVE ( 1 ) - -#ifdef MIDL_PASS -// This is the PROPVARIANT definition for marshaling. -typedef struct tag_inner_PROPVARIANT PROPVARIANT; - -#else -// This is the standard C layout of the PROPVARIANT. -typedef struct tagPROPVARIANT PROPVARIANT; -#endif -typedef struct tagCAC - { - ULONG cElems; - /* [size_is] */ CHAR *pElems; - } CAC; - -typedef struct tagCAUB - { - ULONG cElems; - /* [size_is] */ UCHAR *pElems; - } CAUB; - -typedef struct tagCAI - { - ULONG cElems; - /* [size_is] */ SHORT *pElems; - } CAI; - -typedef struct tagCAUI - { - ULONG cElems; - /* [size_is] */ USHORT *pElems; - } CAUI; - -typedef struct tagCAL - { - ULONG cElems; - /* [size_is] */ LONG *pElems; - } CAL; - -typedef struct tagCAUL - { - ULONG cElems; - /* [size_is] */ ULONG *pElems; - } CAUL; - -typedef struct tagCAFLT - { - ULONG cElems; - /* [size_is] */ FLOAT *pElems; - } CAFLT; - -typedef struct tagCADBL - { - ULONG cElems; - /* [size_is] */ DOUBLE *pElems; - } CADBL; - -typedef struct tagCACY - { - ULONG cElems; - /* [size_is] */ CY *pElems; - } CACY; - -typedef struct tagCADATE - { - ULONG cElems; - /* [size_is] */ DATE *pElems; - } CADATE; - -typedef struct tagCABSTR - { - ULONG cElems; - /* [size_is] */ BSTR *pElems; - } CABSTR; - -typedef struct tagCABSTRBLOB - { - ULONG cElems; - /* [size_is] */ BSTRBLOB *pElems; - } CABSTRBLOB; - -typedef struct tagCABOOL - { - ULONG cElems; - /* [size_is] */ VARIANT_BOOL *pElems; - } CABOOL; - -typedef struct tagCASCODE - { - ULONG cElems; - /* [size_is] */ SCODE *pElems; - } CASCODE; - -typedef struct tagCAPROPVARIANT - { - ULONG cElems; - /* [size_is] */ PROPVARIANT *pElems; - } CAPROPVARIANT; - -typedef struct tagCAH - { - ULONG cElems; - /* [size_is] */ LARGE_INTEGER *pElems; - } CAH; - -typedef struct tagCAUH - { - ULONG cElems; - /* [size_is] */ ULARGE_INTEGER *pElems; - } CAUH; - -typedef struct tagCALPSTR - { - ULONG cElems; - /* [size_is] */ LPSTR *pElems; - } CALPSTR; - -typedef struct tagCALPWSTR - { - ULONG cElems; - /* [size_is] */ LPWSTR *pElems; - } CALPWSTR; - -typedef struct tagCAFILETIME - { - ULONG cElems; - /* [size_is] */ FILETIME *pElems; - } CAFILETIME; - -typedef struct tagCACLIPDATA - { - ULONG cElems; - /* [size_is] */ CLIPDATA *pElems; - } CACLIPDATA; - -typedef struct tagCACLSID - { - ULONG cElems; - /* [size_is] */ CLSID *pElems; - } CACLSID; - -#ifdef MIDL_PASS -// This is the PROPVARIANT padding layout for marshaling. -typedef BYTE PROPVAR_PAD1; - -typedef BYTE PROPVAR_PAD2; - -typedef ULONG PROPVAR_PAD3; - -#else -// This is the standard C layout of the structure. -typedef WORD PROPVAR_PAD1; -typedef WORD PROPVAR_PAD2; -typedef WORD PROPVAR_PAD3; -#define tag_inner_PROPVARIANT -#endif - -#if !defined(_MSC_EXTENSIONS) - -struct tagPROPVARIANT; - -#else -#ifndef MIDL_PASS -struct tagPROPVARIANT { - union { -#endif -struct tag_inner_PROPVARIANT - { - VARTYPE vt; - PROPVAR_PAD1 wReserved1; - PROPVAR_PAD2 wReserved2; - PROPVAR_PAD3 wReserved3; - /* [switch_is] */ /* [switch_type] */ union - { - /* [case()] */ /* Empty union arm */ - /* [case()] */ CHAR cVal; - /* [case()] */ UCHAR bVal; - /* [case()] */ SHORT iVal; - /* [case()] */ USHORT uiVal; - /* [case()] */ LONG lVal; - /* [case()] */ ULONG ulVal; - /* [case()] */ INT intVal; - /* [case()] */ UINT uintVal; - /* [case()] */ LARGE_INTEGER hVal; - /* [case()] */ ULARGE_INTEGER uhVal; - /* [case()] */ FLOAT fltVal; - /* [case()] */ DOUBLE dblVal; - /* [case()] */ VARIANT_BOOL boolVal; - /* [case()] */ VARIANT_BOOL __OBSOLETE__VARIANT_BOOL; - /* [case()] */ SCODE scode; - /* [case()] */ CY cyVal; - /* [case()] */ DATE date; - /* [case()] */ FILETIME filetime; - /* [case()] */ CLSID *puuid; - /* [case()] */ CLIPDATA *pclipdata; - /* [case()] */ BSTR bstrVal; - /* [case()] */ BSTRBLOB bstrblobVal; - /* [case()] */ BLOB blob; - /* [case()] */ LPSTR pszVal; - /* [case()] */ LPWSTR pwszVal; - /* [case()] */ IUnknown *punkVal; - /* [case()] */ IDispatch *pdispVal; - /* [case()] */ IStream *pStream; - /* [case()] */ IStorage *pStorage; - /* [case()] */ LPVERSIONEDSTREAM pVersionedStream; - /* [case()] */ LPSAFEARRAY parray; - /* [case()] */ CAC cac; - /* [case()] */ CAUB caub; - /* [case()] */ CAI cai; - /* [case()] */ CAUI caui; - /* [case()] */ CAL cal; - /* [case()] */ CAUL caul; - /* [case()] */ CAH cah; - /* [case()] */ CAUH cauh; - /* [case()] */ CAFLT caflt; - /* [case()] */ CADBL cadbl; - /* [case()] */ CABOOL cabool; - /* [case()] */ CASCODE cascode; - /* [case()] */ CACY cacy; - /* [case()] */ CADATE cadate; - /* [case()] */ CAFILETIME cafiletime; - /* [case()] */ CACLSID cauuid; - /* [case()] */ CACLIPDATA caclipdata; - /* [case()] */ CABSTR cabstr; - /* [case()] */ CABSTRBLOB cabstrblob; - /* [case()] */ CALPSTR calpstr; - /* [case()] */ CALPWSTR calpwstr; - /* [case()] */ CAPROPVARIANT capropvar; - /* [case()] */ CHAR *pcVal; - /* [case()] */ UCHAR *pbVal; - /* [case()] */ SHORT *piVal; - /* [case()] */ USHORT *puiVal; - /* [case()] */ LONG *plVal; - /* [case()] */ ULONG *pulVal; - /* [case()] */ INT *pintVal; - /* [case()] */ UINT *puintVal; - /* [case()] */ FLOAT *pfltVal; - /* [case()] */ DOUBLE *pdblVal; - /* [case()] */ VARIANT_BOOL *pboolVal; - /* [case()] */ DECIMAL *pdecVal; - /* [case()] */ SCODE *pscode; - /* [case()] */ CY *pcyVal; - /* [case()] */ DATE *pdate; - /* [case()] */ BSTR *pbstrVal; - /* [case()] */ IUnknown **ppunkVal; - /* [case()] */ IDispatch **ppdispVal; - /* [case()] */ LPSAFEARRAY *pparray; - /* [case()] */ PROPVARIANT *pvarVal; - } ; - } ; -#ifndef MIDL_PASS - DECIMAL decVal; - }; -}; -#endif - -#endif /* _MSC_EXTENSIONS */ - -#ifdef MIDL_PASS -// This is the LPPROPVARIANT definition for marshaling. -typedef struct tag_inner_PROPVARIANT *LPPROPVARIANT; - -typedef const PROPVARIANT *REFPROPVARIANT; - -#else - -// This is the standard C layout of the PROPVARIANT. -typedef struct tagPROPVARIANT * LPPROPVARIANT; - -#ifndef _REFPROPVARIANT_DEFINED -#define _REFPROPVARIANT_DEFINED -#ifdef __cplusplus -#define REFPROPVARIANT const PROPVARIANT & -#else -#define REFPROPVARIANT const PROPVARIANT * __MIDL_CONST -#endif -#endif - -#endif // MIDL_PASS - -// Reserved global Property IDs -#define PID_DICTIONARY ( 0 ) - -#define PID_CODEPAGE ( 0x1 ) - -#define PID_FIRST_USABLE ( 0x2 ) - -#define PID_FIRST_NAME_DEFAULT ( 0xfff ) - -#define PID_LOCALE ( 0x80000000 ) - -#define PID_MODIFY_TIME ( 0x80000001 ) - -#define PID_SECURITY ( 0x80000002 ) - -#define PID_BEHAVIOR ( 0x80000003 ) - -#define PID_ILLEGAL ( 0xffffffff ) - -// Range which is read-only to downlevel implementations -#define PID_MIN_READONLY ( 0x80000000 ) - -#define PID_MAX_READONLY ( 0xbfffffff ) - -#define PRSPEC_INVALID ( 0xffffffff ) - -#define PRSPEC_LPWSTR ( 0 ) - -#define PRSPEC_PROPID ( 1 ) - -typedef struct tagPROPSPEC - { - ULONG ulKind; - /* [switch_is] */ /* [switch_type] */ union - { - /* [case()] */ PROPID propid; - /* [case()] */ LPOLESTR lpwstr; - /* [default] */ /* Empty union arm */ - } DUMMYUNIONNAME; - } PROPSPEC; - -typedef struct tagSTATPROPSTG - { - LPOLESTR lpwstrName; - PROPID propid; - VARTYPE vt; - } STATPROPSTG; - -// Macros for parsing the OS Version of the Property Set Header -#define PROPSETHDR_OSVER_KIND(dwOSVer) HIWORD( (dwOSVer) ) -#define PROPSETHDR_OSVER_MAJOR(dwOSVer) LOBYTE(LOWORD( (dwOSVer) )) -#define PROPSETHDR_OSVER_MINOR(dwOSVer) HIBYTE(LOWORD( (dwOSVer) )) -#define PROPSETHDR_OSVERSION_UNKNOWN 0xFFFFFFFF -typedef struct tagSTATPROPSETSTG - { - FMTID fmtid; - CLSID clsid; - DWORD grfFlags; - FILETIME mtime; - FILETIME ctime; - FILETIME atime; - DWORD dwOSVersion; - } STATPROPSETSTG; - - - -extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_0000_v0_0_s_ifspec; - -#ifndef __IPropertyStorage_INTERFACE_DEFINED__ -#define __IPropertyStorage_INTERFACE_DEFINED__ - -/* interface IPropertyStorage */ -/* [unique][uuid][object] */ - - -EXTERN_C const IID IID_IPropertyStorage; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000138-0000-0000-C000-000000000046") - IPropertyStorage : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ReadMultiple( - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ], - /* [size_is][out] */ __RPC__out_ecount_full(cpspec) PROPVARIANT rgpropvar[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE WriteMultiple( - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ], - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPVARIANT rgpropvar[ ], - /* [in] */ PROPID propidNameFirst) = 0; - - virtual HRESULT STDMETHODCALLTYPE DeleteMultiple( - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames( - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ], - /* [size_is][out] */ __RPC__out_ecount_full(cpropid) LPOLESTR rglpwstrName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE WritePropertyNames( - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ], - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const LPOLESTR rglpwstrName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE DeletePropertyNames( - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE Commit( - /* [in] */ DWORD grfCommitFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE Revert( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Enum( - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSTG **ppenum) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTimes( - /* [in] */ __RPC__in const FILETIME *pctime, - /* [in] */ __RPC__in const FILETIME *patime, - /* [in] */ __RPC__in const FILETIME *pmtime) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetClass( - /* [in] */ __RPC__in REFCLSID clsid) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stat( - /* [out] */ __RPC__out STATPROPSETSTG *pstatpsstg) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPropertyStorageVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPropertyStorage * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPropertyStorage * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPropertyStorage * This); - - HRESULT ( STDMETHODCALLTYPE *ReadMultiple )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ], - /* [size_is][out] */ __RPC__out_ecount_full(cpspec) PROPVARIANT rgpropvar[ ]); - - HRESULT ( STDMETHODCALLTYPE *WriteMultiple )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ], - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPVARIANT rgpropvar[ ], - /* [in] */ PROPID propidNameFirst); - - HRESULT ( STDMETHODCALLTYPE *DeleteMultiple )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ]); - - HRESULT ( STDMETHODCALLTYPE *ReadPropertyNames )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ], - /* [size_is][out] */ __RPC__out_ecount_full(cpropid) LPOLESTR rglpwstrName[ ]); - - HRESULT ( STDMETHODCALLTYPE *WritePropertyNames )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ], - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const LPOLESTR rglpwstrName[ ]); - - HRESULT ( STDMETHODCALLTYPE *DeletePropertyNames )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ]); - - HRESULT ( STDMETHODCALLTYPE *Commit )( - __RPC__in IPropertyStorage * This, - /* [in] */ DWORD grfCommitFlags); - - HRESULT ( STDMETHODCALLTYPE *Revert )( - __RPC__in IPropertyStorage * This); - - HRESULT ( STDMETHODCALLTYPE *Enum )( - __RPC__in IPropertyStorage * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSTG **ppenum); - - HRESULT ( STDMETHODCALLTYPE *SetTimes )( - __RPC__in IPropertyStorage * This, - /* [in] */ __RPC__in const FILETIME *pctime, - /* [in] */ __RPC__in const FILETIME *patime, - /* [in] */ __RPC__in const FILETIME *pmtime); - - HRESULT ( STDMETHODCALLTYPE *SetClass )( - __RPC__in IPropertyStorage * This, - /* [in] */ __RPC__in REFCLSID clsid); - - HRESULT ( STDMETHODCALLTYPE *Stat )( - __RPC__in IPropertyStorage * This, - /* [out] */ __RPC__out STATPROPSETSTG *pstatpsstg); - - END_INTERFACE - } IPropertyStorageVtbl; - - interface IPropertyStorage - { - CONST_VTBL struct IPropertyStorageVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPropertyStorage_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPropertyStorage_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPropertyStorage_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPropertyStorage_ReadMultiple(This,cpspec,rgpspec,rgpropvar) \ - ( (This)->lpVtbl -> ReadMultiple(This,cpspec,rgpspec,rgpropvar) ) - -#define IPropertyStorage_WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst) \ - ( (This)->lpVtbl -> WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst) ) - -#define IPropertyStorage_DeleteMultiple(This,cpspec,rgpspec) \ - ( (This)->lpVtbl -> DeleteMultiple(This,cpspec,rgpspec) ) - -#define IPropertyStorage_ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) \ - ( (This)->lpVtbl -> ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) ) - -#define IPropertyStorage_WritePropertyNames(This,cpropid,rgpropid,rglpwstrName) \ - ( (This)->lpVtbl -> WritePropertyNames(This,cpropid,rgpropid,rglpwstrName) ) - -#define IPropertyStorage_DeletePropertyNames(This,cpropid,rgpropid) \ - ( (This)->lpVtbl -> DeletePropertyNames(This,cpropid,rgpropid) ) - -#define IPropertyStorage_Commit(This,grfCommitFlags) \ - ( (This)->lpVtbl -> Commit(This,grfCommitFlags) ) - -#define IPropertyStorage_Revert(This) \ - ( (This)->lpVtbl -> Revert(This) ) - -#define IPropertyStorage_Enum(This,ppenum) \ - ( (This)->lpVtbl -> Enum(This,ppenum) ) - -#define IPropertyStorage_SetTimes(This,pctime,patime,pmtime) \ - ( (This)->lpVtbl -> SetTimes(This,pctime,patime,pmtime) ) - -#define IPropertyStorage_SetClass(This,clsid) \ - ( (This)->lpVtbl -> SetClass(This,clsid) ) - -#define IPropertyStorage_Stat(This,pstatpsstg) \ - ( (This)->lpVtbl -> Stat(This,pstatpsstg) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPropertyStorage_INTERFACE_DEFINED__ */ - - -#ifndef __IPropertySetStorage_INTERFACE_DEFINED__ -#define __IPropertySetStorage_INTERFACE_DEFINED__ - -/* interface IPropertySetStorage */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IPropertySetStorage *LPPROPERTYSETSTORAGE; - - -EXTERN_C const IID IID_IPropertySetStorage; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000013A-0000-0000-C000-000000000046") - IPropertySetStorage : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Create( - /* [in] */ __RPC__in REFFMTID rfmtid, - /* [unique][in] */ __RPC__in_opt const CLSID *pclsid, - /* [in] */ DWORD grfFlags, - /* [in] */ DWORD grfMode, - /* [out] */ __RPC__deref_out_opt IPropertyStorage **ppprstg) = 0; - - virtual HRESULT STDMETHODCALLTYPE Open( - /* [in] */ __RPC__in REFFMTID rfmtid, - /* [in] */ DWORD grfMode, - /* [out] */ __RPC__deref_out_opt IPropertyStorage **ppprstg) = 0; - - virtual HRESULT STDMETHODCALLTYPE Delete( - /* [in] */ __RPC__in REFFMTID rfmtid) = 0; - - virtual HRESULT STDMETHODCALLTYPE Enum( - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSETSTG **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPropertySetStorageVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPropertySetStorage * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPropertySetStorage * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPropertySetStorage * This); - - HRESULT ( STDMETHODCALLTYPE *Create )( - __RPC__in IPropertySetStorage * This, - /* [in] */ __RPC__in REFFMTID rfmtid, - /* [unique][in] */ __RPC__in_opt const CLSID *pclsid, - /* [in] */ DWORD grfFlags, - /* [in] */ DWORD grfMode, - /* [out] */ __RPC__deref_out_opt IPropertyStorage **ppprstg); - - HRESULT ( STDMETHODCALLTYPE *Open )( - __RPC__in IPropertySetStorage * This, - /* [in] */ __RPC__in REFFMTID rfmtid, - /* [in] */ DWORD grfMode, - /* [out] */ __RPC__deref_out_opt IPropertyStorage **ppprstg); - - HRESULT ( STDMETHODCALLTYPE *Delete )( - __RPC__in IPropertySetStorage * This, - /* [in] */ __RPC__in REFFMTID rfmtid); - - HRESULT ( STDMETHODCALLTYPE *Enum )( - __RPC__in IPropertySetStorage * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSETSTG **ppenum); - - END_INTERFACE - } IPropertySetStorageVtbl; - - interface IPropertySetStorage - { - CONST_VTBL struct IPropertySetStorageVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPropertySetStorage_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPropertySetStorage_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPropertySetStorage_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPropertySetStorage_Create(This,rfmtid,pclsid,grfFlags,grfMode,ppprstg) \ - ( (This)->lpVtbl -> Create(This,rfmtid,pclsid,grfFlags,grfMode,ppprstg) ) - -#define IPropertySetStorage_Open(This,rfmtid,grfMode,ppprstg) \ - ( (This)->lpVtbl -> Open(This,rfmtid,grfMode,ppprstg) ) - -#define IPropertySetStorage_Delete(This,rfmtid) \ - ( (This)->lpVtbl -> Delete(This,rfmtid) ) - -#define IPropertySetStorage_Enum(This,ppenum) \ - ( (This)->lpVtbl -> Enum(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPropertySetStorage_INTERFACE_DEFINED__ */ - - -#ifndef __IEnumSTATPROPSTG_INTERFACE_DEFINED__ -#define __IEnumSTATPROPSTG_INTERFACE_DEFINED__ - -/* interface IEnumSTATPROPSTG */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumSTATPROPSTG *LPENUMSTATPROPSTG; - - -EXTERN_C const IID IID_IEnumSTATPROPSTG; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000139-0000-0000-C000-000000000046") - IEnumSTATPROPSTG : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSTG **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumSTATPROPSTGVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumSTATPROPSTG * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnumSTATPROPSTG * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnumSTATPROPSTG * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumSTATPROPSTG * This, - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - __RPC__in IEnumSTATPROPSTG * This, - /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in IEnumSTATPROPSTG * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - __RPC__in IEnumSTATPROPSTG * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSTG **ppenum); - - END_INTERFACE - } IEnumSTATPROPSTGVtbl; - - interface IEnumSTATPROPSTG - { - CONST_VTBL struct IEnumSTATPROPSTGVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumSTATPROPSTG_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumSTATPROPSTG_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumSTATPROPSTG_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumSTATPROPSTG_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumSTATPROPSTG_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumSTATPROPSTG_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumSTATPROPSTG_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSTG_RemoteNext_Proxy( - __RPC__in IEnumSTATPROPSTG * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATPROPSTG *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumSTATPROPSTG_INTERFACE_DEFINED__ */ - - -#ifndef __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ -#define __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ - -/* interface IEnumSTATPROPSETSTG */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG; - - -EXTERN_C const IID IID_IEnumSTATPROPSETSTG; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000013B-0000-0000-C000-000000000046") - IEnumSTATPROPSETSTG : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSETSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSETSTG **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumSTATPROPSETSTGVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumSTATPROPSETSTG * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnumSTATPROPSETSTG * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnumSTATPROPSETSTG * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumSTATPROPSETSTG * This, - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSETSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - __RPC__in IEnumSTATPROPSETSTG * This, - /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in IEnumSTATPROPSETSTG * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - __RPC__in IEnumSTATPROPSETSTG * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSETSTG **ppenum); - - END_INTERFACE - } IEnumSTATPROPSETSTGVtbl; - - interface IEnumSTATPROPSETSTG - { - CONST_VTBL struct IEnumSTATPROPSETSTGVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumSTATPROPSETSTG_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumSTATPROPSETSTG_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumSTATPROPSETSTG_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumSTATPROPSETSTG_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumSTATPROPSETSTG_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumSTATPROPSETSTG_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumSTATPROPSETSTG_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSETSTG_RemoteNext_Proxy( - __RPC__in IEnumSTATPROPSETSTG * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATPROPSETSTG *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_propidl_0000_0004 */ -/* [local] */ - -typedef /* [unique] */ __RPC_unique_pointer IPropertyStorage *LPPROPERTYSTORAGE; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion - -#define _PROPIDLBASE_ -#endif -#include -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -// Property IDs for the DiscardableInformation Property Set - -#define PIDDI_THUMBNAIL 0x00000002L // VT_BLOB - -// Property IDs for the SummaryInformation Property Set - -#define PIDSI_TITLE 0x00000002L // VT_LPSTR -#define PIDSI_SUBJECT 0x00000003L // VT_LPSTR -#define PIDSI_AUTHOR 0x00000004L // VT_LPSTR -#define PIDSI_KEYWORDS 0x00000005L // VT_LPSTR -#define PIDSI_COMMENTS 0x00000006L // VT_LPSTR -#define PIDSI_TEMPLATE 0x00000007L // VT_LPSTR -#define PIDSI_LASTAUTHOR 0x00000008L // VT_LPSTR -#define PIDSI_REVNUMBER 0x00000009L // VT_LPSTR -#define PIDSI_EDITTIME 0x0000000aL // VT_FILETIME (UTC) -#define PIDSI_LASTPRINTED 0x0000000bL // VT_FILETIME (UTC) -#define PIDSI_CREATE_DTM 0x0000000cL // VT_FILETIME (UTC) -#define PIDSI_LASTSAVE_DTM 0x0000000dL // VT_FILETIME (UTC) -#define PIDSI_PAGECOUNT 0x0000000eL // VT_I4 -#define PIDSI_WORDCOUNT 0x0000000fL // VT_I4 -#define PIDSI_CHARCOUNT 0x00000010L // VT_I4 -#define PIDSI_THUMBNAIL 0x00000011L // VT_CF -#define PIDSI_APPNAME 0x00000012L // VT_LPSTR -#define PIDSI_DOC_SECURITY 0x00000013L // VT_I4 - -// Property IDs for the DocSummaryInformation Property Set - -#define PIDDSI_CATEGORY 0x00000002 // VT_LPSTR -#define PIDDSI_PRESFORMAT 0x00000003 // VT_LPSTR -#define PIDDSI_BYTECOUNT 0x00000004 // VT_I4 -#define PIDDSI_LINECOUNT 0x00000005 // VT_I4 -#define PIDDSI_PARCOUNT 0x00000006 // VT_I4 -#define PIDDSI_SLIDECOUNT 0x00000007 // VT_I4 -#define PIDDSI_NOTECOUNT 0x00000008 // VT_I4 -#define PIDDSI_HIDDENCOUNT 0x00000009 // VT_I4 -#define PIDDSI_MMCLIPCOUNT 0x0000000A // VT_I4 -#define PIDDSI_SCALE 0x0000000B // VT_BOOL -#define PIDDSI_HEADINGPAIR 0x0000000C // VT_VARIANT | VT_VECTOR -#define PIDDSI_DOCPARTS 0x0000000D // VT_LPSTR | VT_VECTOR -#define PIDDSI_MANAGER 0x0000000E // VT_LPSTR -#define PIDDSI_COMPANY 0x0000000F // VT_LPSTR -#define PIDDSI_LINKSDIRTY 0x00000010 // VT_BOOL - - -// FMTID_MediaFileSummaryInfo - Property IDs - -#define PIDMSI_EDITOR 0x00000002L // VT_LPWSTR -#define PIDMSI_SUPPLIER 0x00000003L // VT_LPWSTR -#define PIDMSI_SOURCE 0x00000004L // VT_LPWSTR -#define PIDMSI_SEQUENCE_NO 0x00000005L // VT_LPWSTR -#define PIDMSI_PROJECT 0x00000006L // VT_LPWSTR -#define PIDMSI_STATUS 0x00000007L // VT_UI4 -#define PIDMSI_OWNER 0x00000008L // VT_LPWSTR -#define PIDMSI_RATING 0x00000009L // VT_LPWSTR -#define PIDMSI_PRODUCTION 0x0000000AL // VT_FILETIME (UTC) -#define PIDMSI_COPYRIGHT 0x0000000BL // VT_LPWSTR - -// PIDMSI_STATUS value definitions - -enum PIDMSI_STATUS_VALUE - { - PIDMSI_STATUS_NORMAL = 0, - PIDMSI_STATUS_NEW = ( PIDMSI_STATUS_NORMAL + 1 ) , - PIDMSI_STATUS_PRELIM = ( PIDMSI_STATUS_NEW + 1 ) , - PIDMSI_STATUS_DRAFT = ( PIDMSI_STATUS_PRELIM + 1 ) , - PIDMSI_STATUS_INPROGRESS = ( PIDMSI_STATUS_DRAFT + 1 ) , - PIDMSI_STATUS_EDIT = ( PIDMSI_STATUS_INPROGRESS + 1 ) , - PIDMSI_STATUS_REVIEW = ( PIDMSI_STATUS_EDIT + 1 ) , - PIDMSI_STATUS_PROOF = ( PIDMSI_STATUS_REVIEW + 1 ) , - PIDMSI_STATUS_FINAL = ( PIDMSI_STATUS_PROOF + 1 ) , - PIDMSI_STATUS_OTHER = 0x7fff - } ; -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -_Check_return_ WINOLEAPI PropVariantCopy( - _Out_ PROPVARIANT* pvarDest, - _In_ const PROPVARIANT * pvarSrc); - -WINOLEAPI PropVariantClear(_Inout_ PROPVARIANT* pvar); - -WINOLEAPI FreePropVariantArray( - _In_ ULONG cVariants, - _Inout_updates_(cVariants) PROPVARIANT* rgvars); - -#if defined(_MSC_EXTENSIONS) - - -#define _PROPVARIANTINIT_DEFINED_ - -# ifdef __cplusplus - -inline void PropVariantInit (_Out_ PROPVARIANT * pvar ) -{ - memset ( pvar, 0, sizeof(PROPVARIANT) ); -} - -# else - -# define PropVariantInit(pvar) memset ( (pvar), 0, sizeof(PROPVARIANT) ) - -# endif - - -#endif /* _MSC_EXTENSIONS */ - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -#ifndef _SERIALIZEDPROPERTYVALUE_DEFINED_ -#define _SERIALIZEDPROPERTYVALUE_DEFINED_ -typedef struct tagSERIALIZEDPROPERTYVALUE -{ - DWORD dwType; - BYTE rgb[1]; -} SERIALIZEDPROPERTYVALUE; -#endif - -EXTERN_C -_Success_(TRUE) /* Raises status on failure */ -SERIALIZEDPROPERTYVALUE* __stdcall -StgConvertVariantToProperty( - _In_ const PROPVARIANT* pvar, - _In_ USHORT CodePage, - _Out_writes_bytes_opt_(*pcb) SERIALIZEDPROPERTYVALUE* pprop, - _Inout_ ULONG* pcb, - _In_ PROPID pid, - _Reserved_ BOOLEAN fReserved, - _Inout_opt_ ULONG* pcIndirect); - -#ifdef __cplusplus -class PMemoryAllocator; - -EXTERN_C -_Success_(TRUE) /* Raises status on failure */ -BOOLEAN __stdcall -StgConvertPropertyToVariant( - _In_ const SERIALIZEDPROPERTYVALUE* pprop, - _In_ USHORT CodePage, - _Out_ PROPVARIANT* pvar, - _In_ PMemoryAllocator* pma); -#endif - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#if _MSC_VER >= 1200 -#pragma warning(pop) -#else -#pragma warning(default:4201) /* Nameless struct/union */ -#pragma warning(default:4237) /* keywords bool, true, false, etc.. */ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_0004_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -unsigned long __RPC_USER BSTR_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); -void __RPC_USER BSTR_UserFree( __RPC__in unsigned long *, __RPC__in BSTR * ); - -unsigned long __RPC_USER LPSAFEARRAY_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in LPSAFEARRAY * ); -unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in LPSAFEARRAY * ); -unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out LPSAFEARRAY * ); -void __RPC_USER LPSAFEARRAY_UserFree( __RPC__in unsigned long *, __RPC__in LPSAFEARRAY * ); - -unsigned long __RPC_USER BSTR_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); -void __RPC_USER BSTR_UserFree64( __RPC__in unsigned long *, __RPC__in BSTR * ); - -unsigned long __RPC_USER LPSAFEARRAY_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in LPSAFEARRAY * ); -unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in LPSAFEARRAY * ); -unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out LPSAFEARRAY * ); -void __RPC_USER LPSAFEARRAY_UserFree64( __RPC__in unsigned long *, __RPC__in LPSAFEARRAY * ); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSTG_Next_Proxy( - IEnumSTATPROPSTG * This, - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSTG_Next_Stub( - __RPC__in IEnumSTATPROPSTG * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATPROPSTG *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSETSTG_Next_Proxy( - IEnumSTATPROPSETSTG * This, - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSETSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSETSTG_Next_Stub( - __RPC__in IEnumSTATPROPSETSTG * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATPROPSETSTG *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/custom/winsdk/include/um/PropIdlBase.h b/src/custom/winsdk/include/um/PropIdlBase.h deleted file mode 100644 index 9596f17..0000000 --- a/src/custom/winsdk/include/um/PropIdlBase.h +++ /dev/null @@ -1,1165 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __propidlbase_h__ -#define __propidlbase_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IPropertyStorage_FWD_DEFINED__ -#define __IPropertyStorage_FWD_DEFINED__ -typedef interface IPropertyStorage IPropertyStorage; - -#endif /* __IPropertyStorage_FWD_DEFINED__ */ - - -#ifndef __IPropertySetStorage_FWD_DEFINED__ -#define __IPropertySetStorage_FWD_DEFINED__ -typedef interface IPropertySetStorage IPropertySetStorage; - -#endif /* __IPropertySetStorage_FWD_DEFINED__ */ - - -#ifndef __IEnumSTATPROPSTG_FWD_DEFINED__ -#define __IEnumSTATPROPSTG_FWD_DEFINED__ -typedef interface IEnumSTATPROPSTG IEnumSTATPROPSTG; - -#endif /* __IEnumSTATPROPSTG_FWD_DEFINED__ */ - - -#ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__ -#define __IEnumSTATPROPSETSTG_FWD_DEFINED__ -typedef interface IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG; - -#endif /* __IEnumSTATPROPSETSTG_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "objidl.h" -#include "oaidl.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_propidlbase_0000_0000 */ -/* [local] */ - -#include -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -//-------------------------------------------------------------------------- -#if ( _MSC_VER >= 800 ) -#if _MSC_VER >= 1200 -#pragma warning(push) -#pragma warning(disable:4820) /* padding added after data member */ -#endif -#pragma warning(disable:4201) /* Nameless struct/union */ -#pragma warning(disable:4237) /* obsolete member named 'bool' */ -#endif -#if ( _MSC_VER >= 1020 ) -#pragma once -#endif -#ifndef _PROPIDLBASE_ -#pragma region Application Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - - -typedef struct tagVersionedStream - { - GUID guidVersion; - IStream *pStream; - } VERSIONEDSTREAM; - -typedef struct tagVersionedStream *LPVERSIONEDSTREAM; - - -// Flags for IPropertySetStorage::Create -#define PROPSETFLAG_DEFAULT ( 0 ) - -#define PROPSETFLAG_NONSIMPLE ( 1 ) - -#define PROPSETFLAG_ANSI ( 2 ) - -// (This flag is only supported on StgCreatePropStg & StgOpenPropStg -#define PROPSETFLAG_UNBUFFERED ( 4 ) - -// (This flag causes a version-1 property set to be created -#define PROPSETFLAG_CASE_SENSITIVE ( 8 ) - - -// Flags for the reserved PID_BEHAVIOR property -#define PROPSET_BEHAVIOR_CASE_SENSITIVE ( 1 ) - -#ifdef MIDL_PASS -// This is the PROPVARIANT definition for marshaling. -typedef struct tag_inner_PROPVARIANT PROPVARIANT; - -#else -// This is the standard C layout of the PROPVARIANT. -typedef struct tagPROPVARIANT PROPVARIANT; -#endif -typedef struct tagCAC - { - ULONG cElems; - /* [size_is] */ CHAR *pElems; - } CAC; - -typedef struct tagCAUB - { - ULONG cElems; - /* [size_is] */ UCHAR *pElems; - } CAUB; - -typedef struct tagCAI - { - ULONG cElems; - /* [size_is] */ SHORT *pElems; - } CAI; - -typedef struct tagCAUI - { - ULONG cElems; - /* [size_is] */ USHORT *pElems; - } CAUI; - -typedef struct tagCAL - { - ULONG cElems; - /* [size_is] */ LONG *pElems; - } CAL; - -typedef struct tagCAUL - { - ULONG cElems; - /* [size_is] */ ULONG *pElems; - } CAUL; - -typedef struct tagCAFLT - { - ULONG cElems; - /* [size_is] */ FLOAT *pElems; - } CAFLT; - -typedef struct tagCADBL - { - ULONG cElems; - /* [size_is] */ DOUBLE *pElems; - } CADBL; - -typedef struct tagCACY - { - ULONG cElems; - /* [size_is] */ CY *pElems; - } CACY; - -typedef struct tagCADATE - { - ULONG cElems; - /* [size_is] */ DATE *pElems; - } CADATE; - -typedef struct tagCABSTR - { - ULONG cElems; - /* [size_is] */ BSTR *pElems; - } CABSTR; - -typedef struct tagCABSTRBLOB - { - ULONG cElems; - /* [size_is] */ BSTRBLOB *pElems; - } CABSTRBLOB; - -typedef struct tagCABOOL - { - ULONG cElems; - /* [size_is] */ VARIANT_BOOL *pElems; - } CABOOL; - -typedef struct tagCASCODE - { - ULONG cElems; - /* [size_is] */ SCODE *pElems; - } CASCODE; - -typedef struct tagCAPROPVARIANT - { - ULONG cElems; - /* [size_is] */ PROPVARIANT *pElems; - } CAPROPVARIANT; - -typedef struct tagCAH - { - ULONG cElems; - /* [size_is] */ LARGE_INTEGER *pElems; - } CAH; - -typedef struct tagCAUH - { - ULONG cElems; - /* [size_is] */ ULARGE_INTEGER *pElems; - } CAUH; - -typedef struct tagCALPSTR - { - ULONG cElems; - /* [size_is] */ LPSTR *pElems; - } CALPSTR; - -typedef struct tagCALPWSTR - { - ULONG cElems; - /* [size_is] */ LPWSTR *pElems; - } CALPWSTR; - -typedef struct tagCAFILETIME - { - ULONG cElems; - /* [size_is] */ FILETIME *pElems; - } CAFILETIME; - -typedef struct tagCACLIPDATA - { - ULONG cElems; - /* [size_is] */ CLIPDATA *pElems; - } CACLIPDATA; - -typedef struct tagCACLSID - { - ULONG cElems; - /* [size_is] */ CLSID *pElems; - } CACLSID; - -#ifdef MIDL_PASS -// This is the PROPVARIANT padding layout for marshaling. -typedef BYTE PROPVAR_PAD1; - -typedef BYTE PROPVAR_PAD2; - -typedef ULONG PROPVAR_PAD3; - -#else -// This is the standard C layout of the structure. -typedef WORD PROPVAR_PAD1; -typedef WORD PROPVAR_PAD2; -typedef WORD PROPVAR_PAD3; -#define tag_inner_PROPVARIANT -#endif - -#if !defined(_MSC_EXTENSIONS) - -struct tagPROPVARIANT; - -#else -#ifndef MIDL_PASS -struct tagPROPVARIANT { - union { -#endif -struct tag_inner_PROPVARIANT - { - VARTYPE vt; - PROPVAR_PAD1 wReserved1; - PROPVAR_PAD2 wReserved2; - PROPVAR_PAD3 wReserved3; - /* [switch_is] */ /* [switch_type] */ union - { - /* [case()] */ /* Empty union arm */ - /* [case()] */ CHAR cVal; - /* [case()] */ UCHAR bVal; - /* [case()] */ SHORT iVal; - /* [case()] */ USHORT uiVal; - /* [case()] */ LONG lVal; - /* [case()] */ ULONG ulVal; - /* [case()] */ INT intVal; - /* [case()] */ UINT uintVal; - /* [case()] */ LARGE_INTEGER hVal; - /* [case()] */ ULARGE_INTEGER uhVal; - /* [case()] */ FLOAT fltVal; - /* [case()] */ DOUBLE dblVal; - /* [case()] */ VARIANT_BOOL boolVal; - /* [case()] */ VARIANT_BOOL __OBSOLETE__VARIANT_BOOL; - /* [case()] */ SCODE scode; - /* [case()] */ CY cyVal; - /* [case()] */ DATE date; - /* [case()] */ FILETIME filetime; - /* [case()] */ CLSID *puuid; - /* [case()] */ CLIPDATA *pclipdata; - /* [case()] */ BSTR bstrVal; - /* [case()] */ BSTRBLOB bstrblobVal; - /* [case()] */ BLOB blob; - /* [case()] */ LPSTR pszVal; - /* [case()] */ LPWSTR pwszVal; - /* [case()] */ IUnknown *punkVal; - /* [case()] */ IDispatch *pdispVal; - /* [case()] */ IStream *pStream; - /* [case()] */ IStorage *pStorage; - /* [case()] */ LPVERSIONEDSTREAM pVersionedStream; - /* [case()] */ LPSAFEARRAY parray; - /* [case()] */ CAC cac; - /* [case()] */ CAUB caub; - /* [case()] */ CAI cai; - /* [case()] */ CAUI caui; - /* [case()] */ CAL cal; - /* [case()] */ CAUL caul; - /* [case()] */ CAH cah; - /* [case()] */ CAUH cauh; - /* [case()] */ CAFLT caflt; - /* [case()] */ CADBL cadbl; - /* [case()] */ CABOOL cabool; - /* [case()] */ CASCODE cascode; - /* [case()] */ CACY cacy; - /* [case()] */ CADATE cadate; - /* [case()] */ CAFILETIME cafiletime; - /* [case()] */ CACLSID cauuid; - /* [case()] */ CACLIPDATA caclipdata; - /* [case()] */ CABSTR cabstr; - /* [case()] */ CABSTRBLOB cabstrblob; - /* [case()] */ CALPSTR calpstr; - /* [case()] */ CALPWSTR calpwstr; - /* [case()] */ CAPROPVARIANT capropvar; - /* [case()] */ CHAR *pcVal; - /* [case()] */ UCHAR *pbVal; - /* [case()] */ SHORT *piVal; - /* [case()] */ USHORT *puiVal; - /* [case()] */ LONG *plVal; - /* [case()] */ ULONG *pulVal; - /* [case()] */ INT *pintVal; - /* [case()] */ UINT *puintVal; - /* [case()] */ FLOAT *pfltVal; - /* [case()] */ DOUBLE *pdblVal; - /* [case()] */ VARIANT_BOOL *pboolVal; - /* [case()] */ DECIMAL *pdecVal; - /* [case()] */ SCODE *pscode; - /* [case()] */ CY *pcyVal; - /* [case()] */ DATE *pdate; - /* [case()] */ BSTR *pbstrVal; - /* [case()] */ IUnknown **ppunkVal; - /* [case()] */ IDispatch **ppdispVal; - /* [case()] */ LPSAFEARRAY *pparray; - /* [case()] */ PROPVARIANT *pvarVal; - } ; - } ; -#ifndef MIDL_PASS - DECIMAL decVal; - }; -}; -#endif - -#endif /* _MSC_EXTENSIONS */ - -#ifdef MIDL_PASS -// This is the LPPROPVARIANT definition for marshaling. -typedef struct tag_inner_PROPVARIANT *LPPROPVARIANT; - -typedef const PROPVARIANT *REFPROPVARIANT; - -#else - -// This is the standard C layout of the PROPVARIANT. -typedef struct tagPROPVARIANT * LPPROPVARIANT; - -#ifndef _REFPROPVARIANT_DEFINED -#define _REFPROPVARIANT_DEFINED -#ifdef __cplusplus -#define REFPROPVARIANT const PROPVARIANT & -#else -#define REFPROPVARIANT const PROPVARIANT * __MIDL_CONST -#endif -#endif - -#endif // MIDL_PASS - -// Reserved global Property IDs -#define PID_DICTIONARY ( 0 ) - -#define PID_CODEPAGE ( 0x1 ) - -#define PID_FIRST_USABLE ( 0x2 ) - -#define PID_FIRST_NAME_DEFAULT ( 0xfff ) - -#define PID_LOCALE ( 0x80000000 ) - -#define PID_MODIFY_TIME ( 0x80000001 ) - -#define PID_SECURITY ( 0x80000002 ) - -#define PID_BEHAVIOR ( 0x80000003 ) - -#define PID_ILLEGAL ( 0xffffffff ) - -// Range which is read-only to downlevel implementations -#define PID_MIN_READONLY ( 0x80000000 ) - -#define PID_MAX_READONLY ( 0xbfffffff ) - -#define PRSPEC_INVALID ( 0xffffffff ) - -#define PRSPEC_LPWSTR ( 0 ) - -#define PRSPEC_PROPID ( 1 ) - -typedef struct tagPROPSPEC - { - ULONG ulKind; - /* [switch_is] */ /* [switch_type] */ union - { - /* [case()] */ PROPID propid; - /* [case()] */ LPOLESTR lpwstr; - /* [default] */ /* Empty union arm */ - } DUMMYUNIONNAME; - } PROPSPEC; - -typedef struct tagSTATPROPSTG - { - LPOLESTR lpwstrName; - PROPID propid; - VARTYPE vt; - } STATPROPSTG; - -// Macros for parsing the OS Version of the Property Set Header -#define PROPSETHDR_OSVER_KIND(dwOSVer) HIWORD( (dwOSVer) ) -#define PROPSETHDR_OSVER_MAJOR(dwOSVer) LOBYTE(LOWORD( (dwOSVer) )) -#define PROPSETHDR_OSVER_MINOR(dwOSVer) HIBYTE(LOWORD( (dwOSVer) )) -#define PROPSETHDR_OSVERSION_UNKNOWN 0xFFFFFFFF -typedef struct tagSTATPROPSETSTG - { - FMTID fmtid; - CLSID clsid; - DWORD grfFlags; - FILETIME mtime; - FILETIME ctime; - FILETIME atime; - DWORD dwOSVersion; - } STATPROPSETSTG; - - - -extern RPC_IF_HANDLE __MIDL_itf_propidlbase_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_propidlbase_0000_0000_v0_0_s_ifspec; - -#ifndef __IPropertyStorage_INTERFACE_DEFINED__ -#define __IPropertyStorage_INTERFACE_DEFINED__ - -/* interface IPropertyStorage */ -/* [unique][uuid][object] */ - - -EXTERN_C const IID IID_IPropertyStorage; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000138-0000-0000-C000-000000000046") - IPropertyStorage : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ReadMultiple( - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ], - /* [size_is][out] */ __RPC__out_ecount_full(cpspec) PROPVARIANT rgpropvar[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE WriteMultiple( - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ], - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPVARIANT rgpropvar[ ], - /* [in] */ PROPID propidNameFirst) = 0; - - virtual HRESULT STDMETHODCALLTYPE DeleteMultiple( - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames( - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ], - /* [size_is][out] */ __RPC__out_ecount_full(cpropid) LPOLESTR rglpwstrName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE WritePropertyNames( - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ], - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const LPOLESTR rglpwstrName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE DeletePropertyNames( - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE Commit( - /* [in] */ DWORD grfCommitFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE Revert( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Enum( - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSTG **ppenum) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTimes( - /* [in] */ __RPC__in const FILETIME *pctime, - /* [in] */ __RPC__in const FILETIME *patime, - /* [in] */ __RPC__in const FILETIME *pmtime) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetClass( - /* [in] */ __RPC__in REFCLSID clsid) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stat( - /* [out] */ __RPC__out STATPROPSETSTG *pstatpsstg) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPropertyStorageVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPropertyStorage * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPropertyStorage * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPropertyStorage * This); - - HRESULT ( STDMETHODCALLTYPE *ReadMultiple )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ], - /* [size_is][out] */ __RPC__out_ecount_full(cpspec) PROPVARIANT rgpropvar[ ]); - - HRESULT ( STDMETHODCALLTYPE *WriteMultiple )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ], - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPVARIANT rgpropvar[ ], - /* [in] */ PROPID propidNameFirst); - - HRESULT ( STDMETHODCALLTYPE *DeleteMultiple )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpspec, - /* [size_is][in] */ __RPC__in_ecount_full(cpspec) const PROPSPEC rgpspec[ ]); - - HRESULT ( STDMETHODCALLTYPE *ReadPropertyNames )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ], - /* [size_is][out] */ __RPC__out_ecount_full(cpropid) LPOLESTR rglpwstrName[ ]); - - HRESULT ( STDMETHODCALLTYPE *WritePropertyNames )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ], - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const LPOLESTR rglpwstrName[ ]); - - HRESULT ( STDMETHODCALLTYPE *DeletePropertyNames )( - __RPC__in IPropertyStorage * This, - /* [in] */ ULONG cpropid, - /* [size_is][in] */ __RPC__in_ecount_full(cpropid) const PROPID rgpropid[ ]); - - HRESULT ( STDMETHODCALLTYPE *Commit )( - __RPC__in IPropertyStorage * This, - /* [in] */ DWORD grfCommitFlags); - - HRESULT ( STDMETHODCALLTYPE *Revert )( - __RPC__in IPropertyStorage * This); - - HRESULT ( STDMETHODCALLTYPE *Enum )( - __RPC__in IPropertyStorage * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSTG **ppenum); - - HRESULT ( STDMETHODCALLTYPE *SetTimes )( - __RPC__in IPropertyStorage * This, - /* [in] */ __RPC__in const FILETIME *pctime, - /* [in] */ __RPC__in const FILETIME *patime, - /* [in] */ __RPC__in const FILETIME *pmtime); - - HRESULT ( STDMETHODCALLTYPE *SetClass )( - __RPC__in IPropertyStorage * This, - /* [in] */ __RPC__in REFCLSID clsid); - - HRESULT ( STDMETHODCALLTYPE *Stat )( - __RPC__in IPropertyStorage * This, - /* [out] */ __RPC__out STATPROPSETSTG *pstatpsstg); - - END_INTERFACE - } IPropertyStorageVtbl; - - interface IPropertyStorage - { - CONST_VTBL struct IPropertyStorageVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPropertyStorage_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPropertyStorage_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPropertyStorage_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPropertyStorage_ReadMultiple(This,cpspec,rgpspec,rgpropvar) \ - ( (This)->lpVtbl -> ReadMultiple(This,cpspec,rgpspec,rgpropvar) ) - -#define IPropertyStorage_WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst) \ - ( (This)->lpVtbl -> WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst) ) - -#define IPropertyStorage_DeleteMultiple(This,cpspec,rgpspec) \ - ( (This)->lpVtbl -> DeleteMultiple(This,cpspec,rgpspec) ) - -#define IPropertyStorage_ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) \ - ( (This)->lpVtbl -> ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) ) - -#define IPropertyStorage_WritePropertyNames(This,cpropid,rgpropid,rglpwstrName) \ - ( (This)->lpVtbl -> WritePropertyNames(This,cpropid,rgpropid,rglpwstrName) ) - -#define IPropertyStorage_DeletePropertyNames(This,cpropid,rgpropid) \ - ( (This)->lpVtbl -> DeletePropertyNames(This,cpropid,rgpropid) ) - -#define IPropertyStorage_Commit(This,grfCommitFlags) \ - ( (This)->lpVtbl -> Commit(This,grfCommitFlags) ) - -#define IPropertyStorage_Revert(This) \ - ( (This)->lpVtbl -> Revert(This) ) - -#define IPropertyStorage_Enum(This,ppenum) \ - ( (This)->lpVtbl -> Enum(This,ppenum) ) - -#define IPropertyStorage_SetTimes(This,pctime,patime,pmtime) \ - ( (This)->lpVtbl -> SetTimes(This,pctime,patime,pmtime) ) - -#define IPropertyStorage_SetClass(This,clsid) \ - ( (This)->lpVtbl -> SetClass(This,clsid) ) - -#define IPropertyStorage_Stat(This,pstatpsstg) \ - ( (This)->lpVtbl -> Stat(This,pstatpsstg) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPropertyStorage_INTERFACE_DEFINED__ */ - - -#ifndef __IPropertySetStorage_INTERFACE_DEFINED__ -#define __IPropertySetStorage_INTERFACE_DEFINED__ - -/* interface IPropertySetStorage */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IPropertySetStorage *LPPROPERTYSETSTORAGE; - - -EXTERN_C const IID IID_IPropertySetStorage; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000013A-0000-0000-C000-000000000046") - IPropertySetStorage : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Create( - /* [in] */ __RPC__in REFFMTID rfmtid, - /* [unique][in] */ __RPC__in_opt const CLSID *pclsid, - /* [in] */ DWORD grfFlags, - /* [in] */ DWORD grfMode, - /* [out] */ __RPC__deref_out_opt IPropertyStorage **ppprstg) = 0; - - virtual HRESULT STDMETHODCALLTYPE Open( - /* [in] */ __RPC__in REFFMTID rfmtid, - /* [in] */ DWORD grfMode, - /* [out] */ __RPC__deref_out_opt IPropertyStorage **ppprstg) = 0; - - virtual HRESULT STDMETHODCALLTYPE Delete( - /* [in] */ __RPC__in REFFMTID rfmtid) = 0; - - virtual HRESULT STDMETHODCALLTYPE Enum( - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSETSTG **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPropertySetStorageVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPropertySetStorage * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPropertySetStorage * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPropertySetStorage * This); - - HRESULT ( STDMETHODCALLTYPE *Create )( - __RPC__in IPropertySetStorage * This, - /* [in] */ __RPC__in REFFMTID rfmtid, - /* [unique][in] */ __RPC__in_opt const CLSID *pclsid, - /* [in] */ DWORD grfFlags, - /* [in] */ DWORD grfMode, - /* [out] */ __RPC__deref_out_opt IPropertyStorage **ppprstg); - - HRESULT ( STDMETHODCALLTYPE *Open )( - __RPC__in IPropertySetStorage * This, - /* [in] */ __RPC__in REFFMTID rfmtid, - /* [in] */ DWORD grfMode, - /* [out] */ __RPC__deref_out_opt IPropertyStorage **ppprstg); - - HRESULT ( STDMETHODCALLTYPE *Delete )( - __RPC__in IPropertySetStorage * This, - /* [in] */ __RPC__in REFFMTID rfmtid); - - HRESULT ( STDMETHODCALLTYPE *Enum )( - __RPC__in IPropertySetStorage * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSETSTG **ppenum); - - END_INTERFACE - } IPropertySetStorageVtbl; - - interface IPropertySetStorage - { - CONST_VTBL struct IPropertySetStorageVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPropertySetStorage_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPropertySetStorage_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPropertySetStorage_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPropertySetStorage_Create(This,rfmtid,pclsid,grfFlags,grfMode,ppprstg) \ - ( (This)->lpVtbl -> Create(This,rfmtid,pclsid,grfFlags,grfMode,ppprstg) ) - -#define IPropertySetStorage_Open(This,rfmtid,grfMode,ppprstg) \ - ( (This)->lpVtbl -> Open(This,rfmtid,grfMode,ppprstg) ) - -#define IPropertySetStorage_Delete(This,rfmtid) \ - ( (This)->lpVtbl -> Delete(This,rfmtid) ) - -#define IPropertySetStorage_Enum(This,ppenum) \ - ( (This)->lpVtbl -> Enum(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPropertySetStorage_INTERFACE_DEFINED__ */ - - -#ifndef __IEnumSTATPROPSTG_INTERFACE_DEFINED__ -#define __IEnumSTATPROPSTG_INTERFACE_DEFINED__ - -/* interface IEnumSTATPROPSTG */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumSTATPROPSTG *LPENUMSTATPROPSTG; - - -EXTERN_C const IID IID_IEnumSTATPROPSTG; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000139-0000-0000-C000-000000000046") - IEnumSTATPROPSTG : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSTG **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumSTATPROPSTGVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumSTATPROPSTG * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnumSTATPROPSTG * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnumSTATPROPSTG * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumSTATPROPSTG * This, - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - __RPC__in IEnumSTATPROPSTG * This, - /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in IEnumSTATPROPSTG * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - __RPC__in IEnumSTATPROPSTG * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSTG **ppenum); - - END_INTERFACE - } IEnumSTATPROPSTGVtbl; - - interface IEnumSTATPROPSTG - { - CONST_VTBL struct IEnumSTATPROPSTGVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumSTATPROPSTG_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumSTATPROPSTG_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumSTATPROPSTG_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumSTATPROPSTG_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumSTATPROPSTG_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumSTATPROPSTG_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumSTATPROPSTG_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSTG_RemoteNext_Proxy( - __RPC__in IEnumSTATPROPSTG * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATPROPSTG *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumSTATPROPSTG_INTERFACE_DEFINED__ */ - - -#ifndef __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ -#define __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ - -/* interface IEnumSTATPROPSETSTG */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG; - - -EXTERN_C const IID IID_IEnumSTATPROPSETSTG; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000013B-0000-0000-C000-000000000046") - IEnumSTATPROPSETSTG : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSETSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSETSTG **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumSTATPROPSETSTGVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumSTATPROPSETSTG * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnumSTATPROPSETSTG * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnumSTATPROPSETSTG * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumSTATPROPSETSTG * This, - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSETSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - __RPC__in IEnumSTATPROPSETSTG * This, - /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in IEnumSTATPROPSETSTG * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - __RPC__in IEnumSTATPROPSETSTG * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATPROPSETSTG **ppenum); - - END_INTERFACE - } IEnumSTATPROPSETSTGVtbl; - - interface IEnumSTATPROPSETSTG - { - CONST_VTBL struct IEnumSTATPROPSETSTGVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumSTATPROPSETSTG_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumSTATPROPSETSTG_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumSTATPROPSETSTG_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumSTATPROPSETSTG_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumSTATPROPSETSTG_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumSTATPROPSETSTG_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumSTATPROPSETSTG_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSETSTG_RemoteNext_Proxy( - __RPC__in IEnumSTATPROPSETSTG * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATPROPSETSTG *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_propidlbase_0000_0004 */ -/* [local] */ - -typedef /* [unique] */ __RPC_unique_pointer IPropertyStorage *LPPROPERTYSTORAGE; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion - -#define _PROPIDLBASE_ -#endif -#if _MSC_VER >= 1200 -#pragma warning(pop) -#else -#pragma warning(default:4201) /* Nameless struct/union */ -#pragma warning(default:4237) /* keywords bool, true, false, etc.. */ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_propidlbase_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_propidlbase_0000_0004_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -unsigned long __RPC_USER BSTR_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); -void __RPC_USER BSTR_UserFree( __RPC__in unsigned long *, __RPC__in BSTR * ); - -unsigned long __RPC_USER LPSAFEARRAY_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in LPSAFEARRAY * ); -unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in LPSAFEARRAY * ); -unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out LPSAFEARRAY * ); -void __RPC_USER LPSAFEARRAY_UserFree( __RPC__in unsigned long *, __RPC__in LPSAFEARRAY * ); - -unsigned long __RPC_USER BSTR_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); -void __RPC_USER BSTR_UserFree64( __RPC__in unsigned long *, __RPC__in BSTR * ); - -unsigned long __RPC_USER LPSAFEARRAY_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in LPSAFEARRAY * ); -unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in LPSAFEARRAY * ); -unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out LPSAFEARRAY * ); -void __RPC_USER LPSAFEARRAY_UserFree64( __RPC__in unsigned long *, __RPC__in LPSAFEARRAY * ); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSTG_Next_Proxy( - IEnumSTATPROPSTG * This, - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSTG_Next_Stub( - __RPC__in IEnumSTATPROPSTG * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATPROPSTG *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSETSTG_Next_Proxy( - IEnumSTATPROPSETSTG * This, - /* [in] */ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) STATPROPSETSTG *rgelt, - /* [annotation][out] */ - _Out_opt_ _Deref_out_range_(0, celt) ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSETSTG_Next_Stub( - __RPC__in IEnumSTATPROPSETSTG * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) STATPROPSETSTG *rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/custom/winsdk/include/um/Unknwn.h b/src/custom/winsdk/include/um/Unknwn.h deleted file mode 100644 index 568347e..0000000 --- a/src/custom/winsdk/include/um/Unknwn.h +++ /dev/null @@ -1,597 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __unknwn_h__ -#define __unknwn_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IUnknown_FWD_DEFINED__ -#define __IUnknown_FWD_DEFINED__ -typedef interface IUnknown IUnknown; - -#endif /* __IUnknown_FWD_DEFINED__ */ - - -#ifndef __AsyncIUnknown_FWD_DEFINED__ -#define __AsyncIUnknown_FWD_DEFINED__ -typedef interface AsyncIUnknown AsyncIUnknown; - -#endif /* __AsyncIUnknown_FWD_DEFINED__ */ - - -#ifndef __IClassFactory_FWD_DEFINED__ -#define __IClassFactory_FWD_DEFINED__ -typedef interface IClassFactory IClassFactory; - -#endif /* __IClassFactory_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "wtypes.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_unknwn_0000_0000 */ -/* [local] */ - -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -//-------------------------------------------------------------------------- -#if ( _MSC_VER >= 1020 ) -#pragma once -#endif -#include -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0000_v0_0_s_ifspec; - -#ifndef __IUnknown_INTERFACE_DEFINED__ -#define __IUnknown_INTERFACE_DEFINED__ - -/* interface IUnknown */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IUnknown *LPUNKNOWN; - -////////////////////////////////////////////////////////////////// -// IID_IUnknown and all other system IIDs are provided in UUID.LIB -// Link that library in with your proxies, clients and servers -////////////////////////////////////////////////////////////////// - -#if (_MSC_VER >= 1100) && defined(__cplusplus) && !defined(CINTERFACE) - EXTERN_C const IID IID_IUnknown; - extern "C++" - { - MIDL_INTERFACE("00000000-0000-0000-C000-000000000046") - IUnknown - { - public: - BEGIN_INTERFACE - virtual HRESULT STDMETHODCALLTYPE QueryInterface( - /* [in] */ REFIID riid, - /* [iid_is][out] */ _COM_Outptr_ void __RPC_FAR *__RPC_FAR *ppvObject) = 0; - - virtual ULONG STDMETHODCALLTYPE AddRef( void) = 0; - - virtual ULONG STDMETHODCALLTYPE Release( void) = 0; - - template - HRESULT -#ifdef _M_CEE_PURE - __clrcall -#else - STDMETHODCALLTYPE -#endif - QueryInterface(_COM_Outptr_ Q** pp) - { - return QueryInterface(__uuidof(Q), (void **)pp); - } - - END_INTERFACE - }; - } // extern C++ - HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy( - IUnknown __RPC_FAR * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ __RPC__deref_out void __RPC_FAR *__RPC_FAR *ppvObject); - - void __RPC_STUB IUnknown_QueryInterface_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy( - IUnknown __RPC_FAR * This); - - void __RPC_STUB IUnknown_AddRef_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy( - IUnknown __RPC_FAR * This); - - void __RPC_STUB IUnknown_Release_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); -#else - -EXTERN_C const IID IID_IUnknown; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000000-0000-0000-C000-000000000046") - IUnknown - { - public: - BEGIN_INTERFACE - virtual HRESULT STDMETHODCALLTYPE QueryInterface( - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject) = 0; - - virtual ULONG STDMETHODCALLTYPE AddRef( void) = 0; - - virtual ULONG STDMETHODCALLTYPE Release( void) = 0; - - END_INTERFACE - }; - - -#else /* C style interface */ - - typedef struct IUnknownVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IUnknown * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IUnknown * This); - - END_INTERFACE - } IUnknownVtbl; - - interface IUnknown - { - CONST_VTBL struct IUnknownVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IUnknown_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IUnknown_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IUnknown_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy( - IUnknown * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - -void __RPC_STUB IUnknown_QueryInterface_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy( - IUnknown * This); - - -void __RPC_STUB IUnknown_AddRef_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy( - IUnknown * This); - - -void __RPC_STUB IUnknown_Release_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IUnknown_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_unknwn_0000_0001 */ -/* [local] */ - -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0001_v0_0_s_ifspec; - -#ifndef __AsyncIUnknown_INTERFACE_DEFINED__ -#define __AsyncIUnknown_INTERFACE_DEFINED__ - -/* interface AsyncIUnknown */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_AsyncIUnknown; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000e0000-0000-0000-C000-000000000046") - AsyncIUnknown : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Begin_QueryInterface( - /* [in] */ REFIID riid) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_QueryInterface( - /* [annotation][out] */ - __RPC__deref_out void **ppvObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE Begin_AddRef( void) = 0; - - virtual ULONG STDMETHODCALLTYPE Finish_AddRef( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Begin_Release( void) = 0; - - virtual ULONG STDMETHODCALLTYPE Finish_Release( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIUnknownVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - AsyncIUnknown * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - AsyncIUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - AsyncIUnknown * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_QueryInterface )( - AsyncIUnknown * This, - /* [in] */ REFIID riid); - - HRESULT ( STDMETHODCALLTYPE *Finish_QueryInterface )( - AsyncIUnknown * This, - /* [annotation][out] */ - __RPC__deref_out void **ppvObject); - - HRESULT ( STDMETHODCALLTYPE *Begin_AddRef )( - AsyncIUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Finish_AddRef )( - AsyncIUnknown * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_Release )( - AsyncIUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Finish_Release )( - AsyncIUnknown * This); - - END_INTERFACE - } AsyncIUnknownVtbl; - - interface AsyncIUnknown - { - CONST_VTBL struct AsyncIUnknownVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIUnknown_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIUnknown_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIUnknown_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIUnknown_Begin_QueryInterface(This,riid) \ - ( (This)->lpVtbl -> Begin_QueryInterface(This,riid) ) - -#define AsyncIUnknown_Finish_QueryInterface(This,ppvObject) \ - ( (This)->lpVtbl -> Finish_QueryInterface(This,ppvObject) ) - -#define AsyncIUnknown_Begin_AddRef(This) \ - ( (This)->lpVtbl -> Begin_AddRef(This) ) - -#define AsyncIUnknown_Finish_AddRef(This) \ - ( (This)->lpVtbl -> Finish_AddRef(This) ) - -#define AsyncIUnknown_Begin_Release(This) \ - ( (This)->lpVtbl -> Begin_Release(This) ) - -#define AsyncIUnknown_Finish_Release(This) \ - ( (This)->lpVtbl -> Finish_Release(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __AsyncIUnknown_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_unknwn_0000_0002 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0002_v0_0_s_ifspec; - -#ifndef __IClassFactory_INTERFACE_DEFINED__ -#define __IClassFactory_INTERFACE_DEFINED__ - -/* interface IClassFactory */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IClassFactory *LPCLASSFACTORY; - - -EXTERN_C const IID IID_IClassFactory; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000001-0000-0000-C000-000000000046") - IClassFactory : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateInstance( - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pUnkOuter, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE LockServer( - /* [in] */ BOOL fLock) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IClassFactoryVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IClassFactory * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IClassFactory * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IClassFactory * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateInstance )( - IClassFactory * This, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pUnkOuter, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *LockServer )( - IClassFactory * This, - /* [in] */ BOOL fLock); - - END_INTERFACE - } IClassFactoryVtbl; - - interface IClassFactory - { - CONST_VTBL struct IClassFactoryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IClassFactory_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IClassFactory_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IClassFactory_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IClassFactory_CreateInstance(This,pUnkOuter,riid,ppvObject) \ - ( (This)->lpVtbl -> CreateInstance(This,pUnkOuter,riid,ppvObject) ) - -#define IClassFactory_LockServer(This,fLock) \ - ( (This)->lpVtbl -> LockServer(This,fLock) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IClassFactory_RemoteCreateInstance_Proxy( - __RPC__in IClassFactory * This, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObject); - - -void __RPC_STUB IClassFactory_RemoteCreateInstance_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT __stdcall IClassFactory_RemoteLockServer_Proxy( - __RPC__in IClassFactory * This, - /* [in] */ BOOL fLock); - - -void __RPC_STUB IClassFactory_RemoteLockServer_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IClassFactory_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_unknwn_0000_0003 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion - - -extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0003_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* [local] */ HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Proxy( - IClassFactory * This, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pUnkOuter, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Stub( - __RPC__in IClassFactory * This, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObject); - -/* [local] */ HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Proxy( - IClassFactory * This, - /* [in] */ BOOL fLock); - - -/* [call_as] */ HRESULT __stdcall IClassFactory_LockServer_Stub( - __RPC__in IClassFactory * This, - /* [in] */ BOOL fLock); - - - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/custom/winsdk/include/um/Unknwnbase.h b/src/custom/winsdk/include/um/Unknwnbase.h deleted file mode 100644 index 361d9a3..0000000 --- a/src/custom/winsdk/include/um/Unknwnbase.h +++ /dev/null @@ -1,597 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __unknwnbase_h__ -#define __unknwnbase_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IUnknown_FWD_DEFINED__ -#define __IUnknown_FWD_DEFINED__ -typedef interface IUnknown IUnknown; - -#endif /* __IUnknown_FWD_DEFINED__ */ - - -#ifndef __AsyncIUnknown_FWD_DEFINED__ -#define __AsyncIUnknown_FWD_DEFINED__ -typedef interface AsyncIUnknown AsyncIUnknown; - -#endif /* __AsyncIUnknown_FWD_DEFINED__ */ - - -#ifndef __IClassFactory_FWD_DEFINED__ -#define __IClassFactory_FWD_DEFINED__ -typedef interface IClassFactory IClassFactory; - -#endif /* __IClassFactory_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "wtypesbase.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_unknwnbase_0000_0000 */ -/* [local] */ - -#include -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -//-------------------------------------------------------------------------- -#if ( _MSC_VER >= 1020 ) -#pragma once -#endif -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_unknwnbase_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_unknwnbase_0000_0000_v0_0_s_ifspec; - -#ifndef __IUnknown_INTERFACE_DEFINED__ -#define __IUnknown_INTERFACE_DEFINED__ - -/* interface IUnknown */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IUnknown *LPUNKNOWN; - -////////////////////////////////////////////////////////////////// -// IID_IUnknown and all other system IIDs are provided in UUID.LIB -// Link that library in with your proxies, clients and servers -////////////////////////////////////////////////////////////////// - -#if (_MSC_VER >= 1100) && defined(__cplusplus) && !defined(CINTERFACE) - EXTERN_C const IID IID_IUnknown; - extern "C++" - { - MIDL_INTERFACE("00000000-0000-0000-C000-000000000046") - IUnknown - { - public: - BEGIN_INTERFACE - virtual HRESULT STDMETHODCALLTYPE QueryInterface( - /* [in] */ REFIID riid, - /* [iid_is][out] */ _COM_Outptr_ void __RPC_FAR *__RPC_FAR *ppvObject) = 0; - - virtual ULONG STDMETHODCALLTYPE AddRef( void) = 0; - - virtual ULONG STDMETHODCALLTYPE Release( void) = 0; - - template - HRESULT -#ifdef _M_CEE_PURE - __clrcall -#else - STDMETHODCALLTYPE -#endif - QueryInterface(_COM_Outptr_ Q** pp) - { - return QueryInterface(__uuidof(Q), (void **)pp); - } - - END_INTERFACE - }; - } // extern C++ - HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy( - IUnknown __RPC_FAR * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ __RPC__deref_out void __RPC_FAR *__RPC_FAR *ppvObject); - - void __RPC_STUB IUnknown_QueryInterface_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy( - IUnknown __RPC_FAR * This); - - void __RPC_STUB IUnknown_AddRef_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy( - IUnknown __RPC_FAR * This); - - void __RPC_STUB IUnknown_Release_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); -#else - -EXTERN_C const IID IID_IUnknown; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000000-0000-0000-C000-000000000046") - IUnknown - { - public: - BEGIN_INTERFACE - virtual HRESULT STDMETHODCALLTYPE QueryInterface( - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject) = 0; - - virtual ULONG STDMETHODCALLTYPE AddRef( void) = 0; - - virtual ULONG STDMETHODCALLTYPE Release( void) = 0; - - END_INTERFACE - }; - - -#else /* C style interface */ - - typedef struct IUnknownVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IUnknown * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IUnknown * This); - - END_INTERFACE - } IUnknownVtbl; - - interface IUnknown - { - CONST_VTBL struct IUnknownVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IUnknown_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IUnknown_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IUnknown_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy( - IUnknown * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - -void __RPC_STUB IUnknown_QueryInterface_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy( - IUnknown * This); - - -void __RPC_STUB IUnknown_AddRef_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy( - IUnknown * This); - - -void __RPC_STUB IUnknown_Release_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IUnknown_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_unknwnbase_0000_0001 */ -/* [local] */ - -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_unknwnbase_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_unknwnbase_0000_0001_v0_0_s_ifspec; - -#ifndef __AsyncIUnknown_INTERFACE_DEFINED__ -#define __AsyncIUnknown_INTERFACE_DEFINED__ - -/* interface AsyncIUnknown */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_AsyncIUnknown; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("000e0000-0000-0000-C000-000000000046") - AsyncIUnknown : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Begin_QueryInterface( - /* [in] */ REFIID riid) = 0; - - virtual HRESULT STDMETHODCALLTYPE Finish_QueryInterface( - /* [annotation][out] */ - __RPC__deref_out void **ppvObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE Begin_AddRef( void) = 0; - - virtual ULONG STDMETHODCALLTYPE Finish_AddRef( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Begin_Release( void) = 0; - - virtual ULONG STDMETHODCALLTYPE Finish_Release( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct AsyncIUnknownVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - AsyncIUnknown * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - AsyncIUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - AsyncIUnknown * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_QueryInterface )( - AsyncIUnknown * This, - /* [in] */ REFIID riid); - - HRESULT ( STDMETHODCALLTYPE *Finish_QueryInterface )( - AsyncIUnknown * This, - /* [annotation][out] */ - __RPC__deref_out void **ppvObject); - - HRESULT ( STDMETHODCALLTYPE *Begin_AddRef )( - AsyncIUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Finish_AddRef )( - AsyncIUnknown * This); - - HRESULT ( STDMETHODCALLTYPE *Begin_Release )( - AsyncIUnknown * This); - - ULONG ( STDMETHODCALLTYPE *Finish_Release )( - AsyncIUnknown * This); - - END_INTERFACE - } AsyncIUnknownVtbl; - - interface AsyncIUnknown - { - CONST_VTBL struct AsyncIUnknownVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define AsyncIUnknown_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define AsyncIUnknown_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define AsyncIUnknown_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define AsyncIUnknown_Begin_QueryInterface(This,riid) \ - ( (This)->lpVtbl -> Begin_QueryInterface(This,riid) ) - -#define AsyncIUnknown_Finish_QueryInterface(This,ppvObject) \ - ( (This)->lpVtbl -> Finish_QueryInterface(This,ppvObject) ) - -#define AsyncIUnknown_Begin_AddRef(This) \ - ( (This)->lpVtbl -> Begin_AddRef(This) ) - -#define AsyncIUnknown_Finish_AddRef(This) \ - ( (This)->lpVtbl -> Finish_AddRef(This) ) - -#define AsyncIUnknown_Begin_Release(This) \ - ( (This)->lpVtbl -> Begin_Release(This) ) - -#define AsyncIUnknown_Finish_Release(This) \ - ( (This)->lpVtbl -> Finish_Release(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __AsyncIUnknown_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_unknwnbase_0000_0002 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_unknwnbase_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_unknwnbase_0000_0002_v0_0_s_ifspec; - -#ifndef __IClassFactory_INTERFACE_DEFINED__ -#define __IClassFactory_INTERFACE_DEFINED__ - -/* interface IClassFactory */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IClassFactory *LPCLASSFACTORY; - - -EXTERN_C const IID IID_IClassFactory; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000001-0000-0000-C000-000000000046") - IClassFactory : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateInstance( - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pUnkOuter, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE LockServer( - /* [in] */ BOOL fLock) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IClassFactoryVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IClassFactory * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IClassFactory * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IClassFactory * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateInstance )( - IClassFactory * This, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pUnkOuter, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *LockServer )( - IClassFactory * This, - /* [in] */ BOOL fLock); - - END_INTERFACE - } IClassFactoryVtbl; - - interface IClassFactory - { - CONST_VTBL struct IClassFactoryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IClassFactory_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IClassFactory_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IClassFactory_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IClassFactory_CreateInstance(This,pUnkOuter,riid,ppvObject) \ - ( (This)->lpVtbl -> CreateInstance(This,pUnkOuter,riid,ppvObject) ) - -#define IClassFactory_LockServer(This,fLock) \ - ( (This)->lpVtbl -> LockServer(This,fLock) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IClassFactory_RemoteCreateInstance_Proxy( - __RPC__in IClassFactory * This, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObject); - - -void __RPC_STUB IClassFactory_RemoteCreateInstance_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT __stdcall IClassFactory_RemoteLockServer_Proxy( - __RPC__in IClassFactory * This, - /* [in] */ BOOL fLock); - - -void __RPC_STUB IClassFactory_RemoteLockServer_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IClassFactory_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_unknwnbase_0000_0003 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion - - -extern RPC_IF_HANDLE __MIDL_itf_unknwnbase_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_unknwnbase_0000_0003_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* [local] */ HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Proxy( - IClassFactory * This, - /* [annotation][unique][in] */ - _In_opt_ IUnknown *pUnkOuter, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Stub( - __RPC__in IClassFactory * This, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObject); - -/* [local] */ HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Proxy( - IClassFactory * This, - /* [in] */ BOOL fLock); - - -/* [call_as] */ HRESULT __stdcall IClassFactory_LockServer_Stub( - __RPC__in IClassFactory * This, - /* [in] */ BOOL fLock); - - - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/custom/winsdk/include/um/cguid.h b/src/custom/winsdk/include/um/cguid.h deleted file mode 100644 index 5b6d76d..0000000 --- a/src/custom/winsdk/include/um/cguid.h +++ /dev/null @@ -1,199 +0,0 @@ -#include - -/*+------------------------------------------------------------------------- - - Microsoft Windows - Copyright (c) Microsoft Corporation. All rights reserved. - - File: cguid.h - ---------------------------------------------------------------------------*/ - -#ifndef __CGUID_H__ -#define __CGUID_H__ - -#if _MSC_VER > 1000 -#pragma once -#endif - -#if (_MSC_VER >= 800) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif -#pragma warning(disable:4001) /* non standard extension : single line comment */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) - -extern const IID GUID_NULL; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ -#pragma endregion - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -#if(NTDDI_VERSION >= NTDDI_WINXP) -extern const IID CATID_MARSHALER; -#endif - -extern const IID IID_IRpcChannel; -extern const IID IID_IRpcStub; -extern const IID IID_IStubManager; -extern const IID IID_IRpcProxy; -extern const IID IID_IProxyManager; -extern const IID IID_IPSFactory; -extern const IID IID_IInternalMoniker; -extern const IID IID_IDfReserved1; -extern const IID IID_IDfReserved2; -extern const IID IID_IDfReserved3; -extern const CLSID CLSID_StdMarshal; -extern const CLSID CLSID_AggStdMarshal; -extern const CLSID CLSID_StdAsyncActManager; -extern const IID IID_IStub; -extern const IID IID_IProxy; -extern const IID IID_IEnumGeneric; -extern const IID IID_IEnumHolder; -extern const IID IID_IEnumCallback; -extern const IID IID_IOleManager; -extern const IID IID_IOlePresObj; -extern const IID IID_IDebug; -extern const IID IID_IDebugStream; -extern const CLSID CLSID_PSGenObject; -extern const CLSID CLSID_PSClientSite; -extern const CLSID CLSID_PSClassObject; -extern const CLSID CLSID_PSInPlaceActive; -extern const CLSID CLSID_PSInPlaceFrame; -extern const CLSID CLSID_PSDragDrop; -extern const CLSID CLSID_PSBindCtx; -extern const CLSID CLSID_PSEnumerators; -extern const CLSID CLSID_StaticMetafile; -extern const CLSID CLSID_StaticDib; -extern const CLSID CID_CDfsVolume; -extern const CLSID CLSID_DCOMAccessControl; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -extern const CLSID CLSID_GlobalOptions; -extern const CLSID CLSID_StdGlobalInterfaceTable; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -extern const CLSID CLSID_ComBinding; -extern const CLSID CLSID_StdEvent; -extern const CLSID CLSID_ManualResetEvent; -extern const CLSID CLSID_SynchronizeContainer; - -#if(NTDDI_VERSION >= NTDDI_WINXP) -extern const CLSID CLSID_AddrControl; -#endif - -#if(NTDDI_VERSION >= NTDDI_VISTA) -extern const CLSID CLSID_ContextSwitcher; -#endif - -//-------------------------------------------- -// -// CD Forms CLSIDs -// -//-------------------------------------------- - -// -// Form Kernel objects -// -extern const CLSID CLSID_CCDFormKrnl; -extern const CLSID CLSID_CCDPropertyPage; -extern const CLSID CLSID_CCDFormDialog; - -// -// Control objects -// -extern const CLSID CLSID_CCDCommandButton; -extern const CLSID CLSID_CCDComboBox; -extern const CLSID CLSID_CCDTextBox; -extern const CLSID CLSID_CCDCheckBox; -extern const CLSID CLSID_CCDLabel; -extern const CLSID CLSID_CCDOptionButton; -extern const CLSID CLSID_CCDListBox; -extern const CLSID CLSID_CCDScrollBar; -extern const CLSID CLSID_CCDGroupBox; - -// -// Property Pages -// -extern const CLSID CLSID_CCDGeneralPropertyPage; -extern const CLSID CLSID_CCDGenericPropertyPage; -extern const CLSID CLSID_CCDFontPropertyPage; -extern const CLSID CLSID_CCDColorPropertyPage; -extern const CLSID CLSID_CCDLabelPropertyPage; -extern const CLSID CLSID_CCDCheckBoxPropertyPage; -extern const CLSID CLSID_CCDTextBoxPropertyPage; -extern const CLSID CLSID_CCDOptionButtonPropertyPage; -extern const CLSID CLSID_CCDListBoxPropertyPage; -extern const CLSID CLSID_CCDCommandButtonPropertyPage; -extern const CLSID CLSID_CCDComboBoxPropertyPage; -extern const CLSID CLSID_CCDScrollBarPropertyPage; -extern const CLSID CLSID_CCDGroupBoxPropertyPage; -extern const CLSID CLSID_CCDXObjectPropertyPage; - -extern const CLSID CLSID_CStdPropertyFrame; - -extern const CLSID CLSID_CFormPropertyPage; -extern const CLSID CLSID_CGridPropertyPage; - -extern const CLSID CLSID_CWSJArticlePage; -extern const CLSID CLSID_CSystemPage; -extern const CLSID CLSID_IdentityUnmarshal; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -extern const CLSID CLSID_InProcFreeMarshaler; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -extern const CLSID CLSID_Picture_Metafile; -extern const CLSID CLSID_Picture_EnhMetafile; -extern const CLSID CLSID_Picture_Dib; - -// -// Enumerations -// -extern const GUID GUID_TRISTATE; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#ifdef __cplusplus -} -#endif - -#if (_MSC_VER >= 800) -#if (_MSC_VER >= 1200) -#pragma warning(pop) -#else -#pragma warning(default:4001) -#endif -#endif - -#endif /* __CGUID_H__ */ diff --git a/src/custom/winsdk/include/um/combaseapi.h b/src/custom/winsdk/include/um/combaseapi.h deleted file mode 100644 index 8044deb..0000000 --- a/src/custom/winsdk/include/um/combaseapi.h +++ /dev/null @@ -1,1482 +0,0 @@ -//+--------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// File: combaseapi.h -// -// Contents: Base Component Object Model defintions. -// -//---------------------------------------------------------------------------- - - -#include -#include - -//TODO version number should be bumped when _APISET_TARGET_VERSION_WIN10_RS2 becomes available - -#include -#include - -#if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0600 -#endif - -#if (NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0502 -#endif - -#if (NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0501 -#endif - -#if (NTDDI_VERSION >= NTDDI_WIN2K && !defined(_WIN32_WINNT)) -#define _WIN32_WINNT 0x0500 -#endif - -#if !defined(_COMBASEAPI_H_) -#define _COMBASEAPI_H_ - -#ifdef _MSC_VER -#pragma once -#endif // _MSC_VER - -#include - -//TODO change _OLE32_ to _COMBASEAPI_ -#ifdef _OLE32_ -#define WINOLEAPI STDAPI -#define WINOLEAPI_(type) STDAPI_(type) -#else - -#ifdef _68K_ -#ifndef REQUIRESAPPLEPASCAL -#define WINOLEAPI EXTERN_C DECLSPEC_IMPORT HRESULT PASCAL -#define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT type PASCAL -#else -#define WINOLEAPI EXTERN_C DECLSPEC_IMPORT PASCAL HRESULT -#define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT PASCAL type -#endif -#else -#define WINOLEAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE -#define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE -#endif - -#endif - -#pragma region Application or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -/****** Interface Declaration ***********************************************/ - -/* - * These are macros for declaring interfaces. They exist so that - * a single definition of the interface is simulataneously a proper - * declaration of the interface structures (C++ abstract classes) - * for both C and C++. - * - * DECLARE_INTERFACE(iface) is used to declare an interface that does - * not derive from a base interface. - * DECLARE_INTERFACE_(iface, baseiface) is used to declare an interface - * that does derive from a base interface. - * - * By default if the source file has a .c extension the C version of - * the interface declaratations will be expanded; if it has a .cpp - * extension the C++ version will be expanded. if you want to force - * the C version expansion even though the source file has a .cpp - * extension, then define the macro "CINTERFACE". - * eg. cl -DCINTERFACE file.cpp - * - * Example Interface declaration: - * - * #undef INTERFACE - * #define INTERFACE IClassFactory - * - * DECLARE_INTERFACE_(IClassFactory, IUnknown) - * { - * // *** IUnknown methods *** - * STDMETHOD(QueryInterface) (THIS_ - * REFIID riid, - * LPVOID FAR* ppvObj) PURE; - * STDMETHOD_(ULONG,AddRef) (THIS) PURE; - * STDMETHOD_(ULONG,Release) (THIS) PURE; - * - * // *** IClassFactory methods *** - * STDMETHOD(CreateInstance) (THIS_ - * LPUNKNOWN pUnkOuter, - * REFIID riid, - * LPVOID FAR* ppvObject) PURE; - * }; - * - * Example C++ expansion: - * - * struct FAR IClassFactory : public IUnknown - * { - * virtual HRESULT STDMETHODCALLTYPE QueryInterface( - * IID FAR& riid, - * LPVOID FAR* ppvObj) = 0; - * virtual HRESULT STDMETHODCALLTYPE AddRef(void) = 0; - * virtual HRESULT STDMETHODCALLTYPE Release(void) = 0; - * virtual HRESULT STDMETHODCALLTYPE CreateInstance( - * LPUNKNOWN pUnkOuter, - * IID FAR& riid, - * LPVOID FAR* ppvObject) = 0; - * }; - * - * NOTE: Our documentation says '#define interface class' but we use - * 'struct' instead of 'class' to keep a lot of 'public:' lines - * out of the interfaces. The 'FAR' forces the 'this' pointers to - * be far, which is what we need. - * - * Example C expansion: - * - * typedef struct IClassFactory - * { - * const struct IClassFactoryVtbl FAR* lpVtbl; - * } IClassFactory; - * - * typedef struct IClassFactoryVtbl IClassFactoryVtbl; - * - * struct IClassFactoryVtbl - * { - * HRESULT (STDMETHODCALLTYPE * QueryInterface) ( - * IClassFactory FAR* This, - * IID FAR* riid, - * LPVOID FAR* ppvObj) ; - * HRESULT (STDMETHODCALLTYPE * AddRef) (IClassFactory FAR* This) ; - * HRESULT (STDMETHODCALLTYPE * Release) (IClassFactory FAR* This) ; - * HRESULT (STDMETHODCALLTYPE * CreateInstance) ( - * IClassFactory FAR* This, - * LPUNKNOWN pUnkOuter, - * IID FAR* riid, - * LPVOID FAR* ppvObject); - * HRESULT (STDMETHODCALLTYPE * LockServer) ( - * IClassFactory FAR* This, - * BOOL fLock); - * }; - */ - -#if defined(__cplusplus) && !defined(CINTERFACE) -//#define interface struct FAR - -#ifdef COM_STDMETHOD_CAN_THROW -#define COM_DECLSPEC_NOTHROW -#else -#define COM_DECLSPEC_NOTHROW DECLSPEC_NOTHROW -#endif - -#define __STRUCT__ struct -#define interface __STRUCT__ -#define STDMETHOD(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODCALLTYPE method -#define STDMETHOD_(type,method) virtual COM_DECLSPEC_NOTHROW type STDMETHODCALLTYPE method -#define STDMETHODV(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODVCALLTYPE method -#define STDMETHODV_(type,method) virtual COM_DECLSPEC_NOTHROW type STDMETHODVCALLTYPE method -#define PURE = 0 -#define THIS_ -#define THIS void -#define DECLARE_INTERFACE(iface) interface DECLSPEC_NOVTABLE iface -#define DECLARE_INTERFACE_(iface, baseiface) interface DECLSPEC_NOVTABLE iface : public baseiface -#define DECLARE_INTERFACE_IID(iface, iid) interface DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE iface -#define DECLARE_INTERFACE_IID_(iface, baseiface, iid) interface DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE iface : public baseiface - -#define IFACEMETHOD(method) __override STDMETHOD(method) -#define IFACEMETHOD_(type,method) __override STDMETHOD_(type,method) -#define IFACEMETHODV(method) __override STDMETHODV(method) -#define IFACEMETHODV_(type,method) __override STDMETHODV_(type,method) - -#if !defined(BEGIN_INTERFACE) -#if defined(_MPPC_) && ((defined(_MSC_VER) || defined(__SC__) || defined(__MWERKS__)) && !defined(NO_NULL_VTABLE_ENTRY)) - #define BEGIN_INTERFACE virtual void a() {} - #define END_INTERFACE -#else - #define BEGIN_INTERFACE - #define END_INTERFACE -#endif -#endif - -#ifndef SORTPP_PASS - -// This forward declaration has been left where this type was previously defined, to preserve ordering. -extern "C++" -{ - template _Post_equal_to_(pp) _Post_satisfies_(return == pp) void** IID_PPV_ARGS_Helper(T** pp); -} - -#endif // !SORTPP_PASS - -#define IID_PPV_ARGS(ppType) __uuidof(**(ppType)), IID_PPV_ARGS_Helper(ppType) - -#else - -#define interface struct - -#define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE * method) -#define STDMETHOD_(type,method) type (STDMETHODCALLTYPE * method) -#define STDMETHODV(method) HRESULT (STDMETHODVCALLTYPE * method) -#define STDMETHODV_(type,method) type (STDMETHODVCALLTYPE * method) - -#define IFACEMETHOD(method) __override STDMETHOD(method) -#define IFACEMETHOD_(type,method) __override STDMETHOD_(type,method) -#define IFACEMETHODV(method) __override STDMETHODV(method) -#define IFACEMETHODV_(type,method) __override STDMETHODV_(type,method) - -#if !defined(BEGIN_INTERFACE) -#if defined(_MPPC_) - #define BEGIN_INTERFACE void *b; - #define END_INTERFACE -#else - #define BEGIN_INTERFACE - #define END_INTERFACE -#endif -#endif - -#define PURE -#define THIS_ INTERFACE FAR* This, -#define THIS INTERFACE FAR* This -#ifdef CONST_VTABLE -#undef CONST_VTBL -#define CONST_VTBL const -#define DECLARE_INTERFACE(iface) typedef interface iface { \ - const struct iface##Vtbl FAR* lpVtbl; \ - } iface; \ - typedef const struct iface##Vtbl iface##Vtbl; \ - const struct iface##Vtbl -#else -#undef CONST_VTBL -#define CONST_VTBL -#define DECLARE_INTERFACE(iface) typedef interface iface { \ - struct iface##Vtbl FAR* lpVtbl; \ - } iface; \ - typedef struct iface##Vtbl iface##Vtbl; \ - struct iface##Vtbl -#endif -#define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE(iface) -#define DECLARE_INTERFACE_IID(iface, iid) DECLARE_INTERFACE(iface) -#define DECLARE_INTERFACE_IID_(iface, baseiface, iid) DECLARE_INTERFACE_(iface, baseiface) -#endif - -/****** Additional basic types **********************************************/ - -#ifndef FARSTRUCT -#ifdef __cplusplus -#define FARSTRUCT FAR -#else -#define FARSTRUCT -#endif // __cplusplus -#endif // FARSTRUCT - -#ifndef HUGEP -#if defined(_WIN32) || defined(_MPPC_) -#define HUGEP -#else -#define HUGEP __huge -#endif // WIN32 -#endif // HUGEP - -#include - -#define LISet32(li, v) ((li).HighPart = ((LONG) (v)) < 0 ? -1 : 0, (li).LowPart = (v)) - -#define ULISet32(li, v) ((li).HighPart = 0, (li).LowPart = (v)) - -#define CLSCTX_INPROC (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER) - -// With DCOM, CLSCTX_REMOTE_SERVER should be included -// DCOM -#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM) -#define CLSCTX_ALL (CLSCTX_INPROC_SERVER| \ - CLSCTX_INPROC_HANDLER| \ - CLSCTX_LOCAL_SERVER| \ - CLSCTX_REMOTE_SERVER) - -#define CLSCTX_SERVER (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER) -#else -#define CLSCTX_ALL (CLSCTX_INPROC_SERVER| \ - CLSCTX_INPROC_HANDLER| \ - CLSCTX_LOCAL_SERVER ) - -#define CLSCTX_SERVER (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER) -#endif - -// class registration flags; passed to CoRegisterClassObject -typedef enum tagREGCLS -{ - REGCLS_SINGLEUSE = 0, // class object only generates one instance - REGCLS_MULTIPLEUSE = 1, // same class object genereates multiple inst. - // and local automatically goes into inproc tbl. - REGCLS_MULTI_SEPARATE = 2, // multiple use, but separate control over each - // context. - REGCLS_SUSPENDED = 4, // register is as suspended, will be activated - // when app calls CoResumeClassObjects - REGCLS_SURROGATE = 8, // must be used when a surrogate process - // is registering a class object that will be - // loaded in the surrogate -#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) - REGCLS_AGILE = 0x10, // Class object aggregates the free-threaded marshaler - // and will be made visible to all inproc apartments. - // Can be used together with other flags - for example, - // REGCLS_AGILE | REGCLS_MULTIPLEUSE to register a - // class object that can be used multiple times from - // different apartments. Without other flags, behavior - // will retain REGCLS_SINGLEUSE semantics in that only - // one instance can be generated. -#endif -} REGCLS; - -/* here is where we pull in the MIDL generated headers for the interfaces */ -typedef interface IRpcStubBuffer IRpcStubBuffer; -typedef interface IRpcChannelBuffer IRpcChannelBuffer; - -// COM initialization flags; passed to CoInitialize. -typedef enum tagCOINITBASE -{ -// DCOM -#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM) - // These constants are only valid on Windows NT 4.0 - COINITBASE_MULTITHREADED = 0x0, // OLE calls objects on any thread. -#endif // DCOM -} COINITBASE; - -#include -#include - -#if defined(__cplusplus) && !defined(CINTERFACE) - -// IID_PPV_ARGS(ppType) -// ppType is the variable of type IType that will be filled -// -// RESULTS in: IID_IType, ppvType -// will create a compiler error if wrong level of indirection is used. -// -extern "C++" -{ - template _Post_equal_to_(pp) _Post_satisfies_(return == pp) void** IID_PPV_ARGS_Helper(T** pp) - { -#pragma prefast(suppress: 6269, "Tool issue with unused static_cast") - static_cast(*pp); // make sure everyone derives from IUnknown - return reinterpret_cast(pp); - } -} - -#endif // defined(__cplusplus) && !defined(CINTERFACE) - -#include - -#include - -#ifndef INITGUID -// TODO change to cguidbase.h -#include -#endif - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -/****** STD Object API Prototypes *****************************************/ - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoGetMalloc( - _In_ DWORD dwMemContext, - _Outptr_ LPMALLOC FAR * ppMalloc - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CreateStreamOnHGlobal( - HGLOBAL hGlobal, - _In_ BOOL fDeleteOnRelease, - _Outptr_ LPSTREAM FAR * ppstm - ); - - -_Check_return_ WINOLEAPI -GetHGlobalFromStream( - _In_ LPSTREAM pstm, - _Out_ HGLOBAL FAR * phglobal - ); - - -/* init/uninit */ - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Application or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -WINOLEAPI_(void) -CoUninitialize( - void - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -WINOLEAPI_(DWORD) -CoGetCurrentProcess( - void - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -// DCOM -#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM) - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -_Check_return_ WINOLEAPI -CoInitializeEx( - _In_opt_ LPVOID pvReserved, - _In_ DWORD dwCoInit - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -WINOLEAPI -CoGetCallerTID( - _Out_ LPDWORD lpdwTID - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -WINOLEAPI -CoGetCurrentLogicalThreadId( - _Out_ GUID* pguid - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#endif // DCOM - -#if (_WIN32_WINNT >= 0x0501) - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoGetContextToken( - _Out_ ULONG_PTR* pToken - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoGetDefaultContext( - _In_ APTTYPE aptType, - _In_ REFIID riid, - _Outptr_ void** ppv - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#endif - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -// definition for Win7 new APIs - -#if (NTDDI_VERSION >= NTDDI_WIN7) - -_Check_return_ WINOLEAPI -CoGetApartmentType( - _Out_ APTTYPE* pAptType, - _Out_ APTTYPEQUALIFIER* pAptQualifier - ); - - -#endif - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -// definition for Win8 new APIs - -#if (NTDDI_VERSION >= NTDDI_WIN8) - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -typedef struct tagServerInformation -{ - DWORD dwServerPid; - DWORD dwServerTid; - UINT64 ui64ServerAddress; -} ServerInformation, *PServerInformation; - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoDecodeProxy( - _In_ DWORD dwClientPid, - _In_ UINT64 ui64ProxyAddress, - _Out_ PServerInformation pServerInformation - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -DECLARE_HANDLE(CO_MTA_USAGE_COOKIE); - -_Check_return_ WINOLEAPI -CoIncrementMTAUsage( - _Out_ CO_MTA_USAGE_COOKIE* pCookie - ); - - WINOLEAPI -CoDecrementMTAUsage( - _In_ CO_MTA_USAGE_COOKIE Cookie - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -WINOLEAPI -CoAllowUnmarshalerCLSID( - _In_ REFCLSID clsid - ); - - -// Predefine _EXE_INITIALIZE_MTA to have the runtime initialize an MTA for your process -// prior to initializing globals (i.e. dynamic initializers) -// _EXE_INITIALIZE_MTA et al. are too long for rc -#if !defined RC_INVOKED - #if defined _M_IX86 - #define _CRT_INTERNAL_COMBASE_SYMBOL_PREFIX "_" - #elif defined _M_X64 || defined _M_ARM || defined _M_ARM64 - #define _CRT_INTERNAL_COMBASE_SYMBOL_PREFIX "" - #endif - - #if defined _EXE_INITIALIZE_MTA && !defined _M_CEE - #pragma comment(lib, "exe_initialize_mta") - #pragma comment(linker, "/include:" _CRT_INTERNAL_COMBASE_SYMBOL_PREFIX "__PLEASE_LINK_WITH_exe_initialize_mta.lib") - #endif -#endif - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -#endif - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoGetObjectContext( - _In_ REFIID riid, - _Outptr_ LPVOID FAR * ppv - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -/* register/revoke/get class objects */ - -_Check_return_ WINOLEAPI -CoGetClassObject( - _In_ REFCLSID rclsid, - _In_ DWORD dwClsContext, - _In_opt_ LPVOID pvReserved, - _In_ REFIID riid, - _Outptr_ LPVOID FAR * ppv - ); - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -_Check_return_ WINOLEAPI -CoRegisterClassObject( - _In_ REFCLSID rclsid, - _In_ LPUNKNOWN pUnk, - _In_ DWORD dwClsContext, - _In_ DWORD flags, - _Out_ LPDWORD lpdwRegister - ); - -WINOLEAPI -CoRevokeClassObject( - _In_ DWORD dwRegister - ); - -_Check_return_ WINOLEAPI -CoResumeClassObjects( - void - ); - -_Check_return_ WINOLEAPI -CoSuspendClassObjects( - void - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -WINOLEAPI_(ULONG) -CoAddRefServerProcess( - void - ); - - -WINOLEAPI_(ULONG) -CoReleaseServerProcess( - void - ); - - -_Check_return_ WINOLEAPI -CoGetPSClsid( - _In_ REFIID riid, - _Out_ CLSID* pClsid - ); - -_Check_return_ WINOLEAPI -CoRegisterPSClsid( - _In_ REFIID riid, - _In_ REFCLSID rclsid - ); - - -// Registering surrogate processes -_Check_return_ WINOLEAPI -CoRegisterSurrogate( - _In_ LPSURROGATE pSurrogate - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -/* marshaling interface pointers */ - -_Check_return_ WINOLEAPI -CoGetMarshalSizeMax( - _Out_ ULONG* pulSize, - _In_ REFIID riid, - _In_ LPUNKNOWN pUnk, - _In_ DWORD dwDestContext, - _In_opt_ LPVOID pvDestContext, - _In_ DWORD mshlflags - ); - -_Check_return_ WINOLEAPI -CoMarshalInterface( - _In_ LPSTREAM pStm, - _In_ REFIID riid, - _In_ LPUNKNOWN pUnk, - _In_ DWORD dwDestContext, - _In_opt_ LPVOID pvDestContext, - _In_ DWORD mshlflags - ); - -_Check_return_ WINOLEAPI -CoUnmarshalInterface( - _In_ LPSTREAM pStm, - _In_ REFIID riid, - _COM_Outptr_ LPVOID FAR * ppv - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -WINOLEAPI -CoMarshalHresult( - _In_ LPSTREAM pstm, - _In_ HRESULT hresult - ); - -WINOLEAPI -CoUnmarshalHresult( - _In_ LPSTREAM pstm, - _Out_ HRESULT FAR * phresult - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoReleaseMarshalData( - _In_ LPSTREAM pStm - ); - -_Check_return_ WINOLEAPI -CoDisconnectObject( - _In_ LPUNKNOWN pUnk, - _In_ DWORD dwReserved - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoLockObjectExternal( - _In_ LPUNKNOWN pUnk, - _In_ BOOL fLock, - _In_ BOOL fLastUnlockReleases - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoGetStandardMarshal( - _In_ REFIID riid, - _In_ LPUNKNOWN pUnk, - _In_ DWORD dwDestContext, - _In_opt_ LPVOID pvDestContext, - _In_ DWORD mshlflags, - _Outptr_ LPMARSHAL FAR * ppMarshal - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoGetStdMarshalEx( - _In_ LPUNKNOWN pUnkOuter, - _In_ DWORD smexflags, - _Outptr_ LPUNKNOWN FAR * ppUnkInner - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -/* flags for CoGetStdMarshalEx */ -typedef enum tagSTDMSHLFLAGS -{ - SMEXF_SERVER = 0x01, // server side aggregated std marshaler - SMEXF_HANDLER = 0x02 // client side (handler) agg std marshaler -} STDMSHLFLAGS; - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -WINOLEAPI_(BOOL) -CoIsHandlerConnected( - _In_ LPUNKNOWN pUnk - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -// Apartment model inter-thread interface passing helpers -_Check_return_ WINOLEAPI -CoMarshalInterThreadInterfaceInStream( - _In_ REFIID riid, - _In_ LPUNKNOWN pUnk, - _Outptr_ LPSTREAM* ppStm - ); - - -_Check_return_ WINOLEAPI -CoGetInterfaceAndReleaseStream( - _In_ LPSTREAM pStm, - _In_ REFIID iid, - _COM_Outptr_ LPVOID FAR * ppv - ); - - -_Check_return_ WINOLEAPI -CoCreateFreeThreadedMarshaler( - _In_opt_ LPUNKNOWN punkOuter, - _Outptr_ LPUNKNOWN* ppunkMarshal - ); - - -WINOLEAPI_(void) -CoFreeUnusedLibraries( - void - ); - -#if (_WIN32_WINNT >= 0x0501) -WINOLEAPI_(void) -CoFreeUnusedLibrariesEx( - _In_ DWORD dwUnloadDelay, - _In_ DWORD dwReserved - ); - -#endif - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#if (_WIN32_WINNT >= 0x0600) - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoDisconnectContext( - DWORD dwTimeout - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#endif - -// DCOM -#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM) - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -/* Call Security. */ - -_Check_return_ WINOLEAPI -CoInitializeSecurity( - _In_opt_ PSECURITY_DESCRIPTOR pSecDesc, - _In_ LONG cAuthSvc, - _In_reads_opt_(cAuthSvc) SOLE_AUTHENTICATION_SERVICE* asAuthSvc, - _In_opt_ void* pReserved1, - _In_ DWORD dwAuthnLevel, - _In_ DWORD dwImpLevel, - _In_opt_ void* pAuthList, - _In_ DWORD dwCapabilities, - _In_opt_ void* pReserved3 - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoGetCallContext( - _In_ REFIID riid, - _Outptr_ void** ppInterface - ); - - -_Check_return_ WINOLEAPI -CoQueryProxyBlanket( - _In_ IUnknown* pProxy, - _Out_opt_ DWORD* pwAuthnSvc, - _Out_opt_ DWORD* pAuthzSvc, - _Outptr_opt_ LPOLESTR* pServerPrincName, - _Out_opt_ DWORD* pAuthnLevel, - _Out_opt_ DWORD* pImpLevel, - _Out_opt_ RPC_AUTH_IDENTITY_HANDLE* pAuthInfo, - _Out_opt_ DWORD* pCapabilites - ); - - -_Check_return_ WINOLEAPI -CoSetProxyBlanket( - _In_ IUnknown* pProxy, - _In_ DWORD dwAuthnSvc, - _In_ DWORD dwAuthzSvc, - _In_opt_ OLECHAR* pServerPrincName, - _In_ DWORD dwAuthnLevel, - _In_ DWORD dwImpLevel, - _In_opt_ RPC_AUTH_IDENTITY_HANDLE pAuthInfo, - _In_ DWORD dwCapabilities - ); - - -_Check_return_ WINOLEAPI -CoCopyProxy( - _In_ IUnknown* pProxy, - _Outptr_ IUnknown** ppCopy - ); - - -_Check_return_ WINOLEAPI -CoQueryClientBlanket( - _Out_opt_ DWORD* pAuthnSvc, - _Out_opt_ DWORD* pAuthzSvc, - _Outptr_opt_ LPOLESTR* pServerPrincName, - _Out_opt_ DWORD* pAuthnLevel, - _Out_opt_ DWORD* pImpLevel, - _Outptr_opt_result_buffer_(_Inexpressible_("depends on pAuthnSvc")) RPC_AUTHZ_HANDLE* pPrivs, - _Inout_opt_ DWORD* pCapabilities - ); - - -_Check_return_ WINOLEAPI -CoImpersonateClient( - void - ); - - -_Check_return_ WINOLEAPI -CoRevertToSelf( - void - ); - - -_Check_return_ WINOLEAPI -CoQueryAuthenticationServices( - _Out_ DWORD* pcAuthSvc, - _Outptr_result_buffer_(*pcAuthSvc) SOLE_AUTHENTICATION_SERVICE** asAuthSvc - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoSwitchCallContext( - _In_opt_ IUnknown* pNewObject, - _Outptr_ IUnknown** ppOldObject - ); - - -#define COM_RIGHTS_EXECUTE 1 -#define COM_RIGHTS_EXECUTE_LOCAL 2 -#define COM_RIGHTS_EXECUTE_REMOTE 4 -#define COM_RIGHTS_ACTIVATE_LOCAL 8 -#define COM_RIGHTS_ACTIVATE_REMOTE 16 -#define COM_RIGHTS_RESERVED1 32 -#define COM_RIGHTS_RESERVED2 64 - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#endif // DCOM - -#pragma region Desktop or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -/* helper for creating instances */ - -_Check_return_ WINOLEAPI -CoCreateInstance( - _In_ REFCLSID rclsid, - _In_opt_ LPUNKNOWN pUnkOuter, - _In_ DWORD dwClsContext, - _In_ REFIID riid, - _COM_Outptr_ _At_(*ppv, _Post_readable_size_(_Inexpressible_(varies))) LPVOID FAR * ppv - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -// DCOM -#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM) - -_Check_return_ WINOLEAPI -CoCreateInstanceEx( - _In_ REFCLSID Clsid, - _In_opt_ IUnknown* punkOuter, - _In_ DWORD dwClsCtx, - _In_opt_ COSERVERINFO* pServerInfo, - _In_ DWORD dwCount, - _Inout_updates_(dwCount) MULTI_QI* pResults - ); - - -#endif // DCOM - -WINOLEAPI -CoRegisterActivationFilter( - _In_ IActivationFilter* pActivationFilter - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#if (_WIN32_WINNT >= 0x0602) - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoCreateInstanceFromApp( - _In_ REFCLSID Clsid, - _In_opt_ IUnknown* punkOuter, - _In_ DWORD dwClsCtx, - _In_opt_ PVOID reserved, - _In_ DWORD dwCount, - _Inout_updates_(dwCount) MULTI_QI* pResults - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#endif - -#pragma region Not Desktop or OneCore Family -#if WINAPI_PARTITION_APP && !(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -__inline _Check_return_ HRESULT CoCreateInstance( - _In_ REFCLSID rclsid, - _In_opt_ LPUNKNOWN pUnkOuter, - _In_ DWORD dwClsContext, - _In_ REFIID riid, - _COM_Outptr_ _At_(*ppv, _Post_readable_size_(_Inexpressible_(varies))) LPVOID FAR* ppv) -{ - MULTI_QI OneQI; - HRESULT hr; - - OneQI.pItf = NULL; - -#ifdef __cplusplus - OneQI.pIID = &riid; -#else - OneQI.pIID = riid; -#endif - - hr = CoCreateInstanceFromApp( rclsid, pUnkOuter, dwClsContext, NULL, 1, &OneQI ); - -#ifdef _PREFAST_ - if (SUCCEEDED(hr) && SUCCEEDED(OneQI.hr)) - _Analysis_assume_(OneQI.pItf != NULL); - else - _Analysis_assume_(OneQI.pItf == NULL); -#endif - - *ppv = OneQI.pItf; - return FAILED(hr) ? hr : OneQI.hr; -} - -__inline _Check_return_ HRESULT CoCreateInstanceEx( - _In_ REFCLSID Clsid, - _In_opt_ IUnknown * punkOuter, - _In_ DWORD dwClsCtx, - _In_opt_ COSERVERINFO * pServerInfo, - _In_ DWORD dwCount, - _Inout_updates_(dwCount) MULTI_QI *pResults ) -{ - return CoCreateInstanceFromApp(Clsid, punkOuter, dwClsCtx, pServerInfo, dwCount, pResults); -} - -#endif // WINAPI_PARTITION_APP && !(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -/* Call related APIs */ -// DCOM -#if (_WIN32_WINNT >= 0x0500) || defined(_WIN32_DCOM) - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoGetCancelObject( - _In_ DWORD dwThreadId, - _In_ REFIID iid, - _Outptr_ void** ppUnk - ); - - -_Check_return_ WINOLEAPI -CoSetCancelObject( - _In_opt_ IUnknown* pUnk - ); - - -_Check_return_ WINOLEAPI -CoCancelCall( - _In_ DWORD dwThreadId, - _In_ ULONG ulTimeout - ); - - -_Check_return_ WINOLEAPI -CoTestCancel( - void - ); - - -_Check_return_ WINOLEAPI -CoEnableCallCancellation( - _In_opt_ LPVOID pReserved - ); - - -_Check_return_ WINOLEAPI -CoDisableCallCancellation( - _In_opt_ LPVOID pReserved - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#endif - -#pragma region Application or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -/* other helpers */ - -_Check_return_ WINOLEAPI -StringFromCLSID( - _In_ REFCLSID rclsid, - _Outptr_ LPOLESTR FAR * lplpsz - ); - -_Check_return_ WINOLEAPI -CLSIDFromString( - _In_ LPCOLESTR lpsz, - _Out_ LPCLSID pclsid - ); - -_Check_return_ WINOLEAPI -StringFromIID( - _In_ REFIID rclsid, - _Outptr_ LPOLESTR FAR * lplpsz - ); - -_Check_return_ WINOLEAPI -IIDFromString( - _In_ LPCOLESTR lpsz, - _Out_ LPIID lpiid - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -ProgIDFromCLSID( - _In_ REFCLSID clsid, - _Outptr_ LPOLESTR FAR * lplpszProgID - ); - -_Check_return_ WINOLEAPI -CLSIDFromProgID( - _In_ LPCOLESTR lpszProgID, - _Out_ LPCLSID lpclsid - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#pragma region Application or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -_Check_return_ WINOLEAPI_(int) -StringFromGUID2( - _In_ REFGUID rguid, - _Out_writes_to_(cchMax,return) LPOLESTR lpsz, - _In_ int cchMax - ); - - -_Check_return_ WINOLEAPI -CoCreateGuid( - _Out_ GUID FAR * pguid - ); - - -/* Prop variant support */ - -typedef struct tagPROPVARIANT PROPVARIANT; - -_Check_return_ -WINOLEAPI -PropVariantCopy( - _Out_ PROPVARIANT* pvarDest, - _In_ const PROPVARIANT* pvarSrc - ); - - -WINOLEAPI -PropVariantClear( - _Inout_ PROPVARIANT* pvar - ); - - -WINOLEAPI -FreePropVariantArray( - _In_ ULONG cVariants, - _Inout_updates_(cVariants) PROPVARIANT* rgvars - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -// DCOM -#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM) - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#endif // DCOM - -// DCOM -#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM) -/* Synchronization API */ - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoWaitForMultipleHandles( - _In_ DWORD dwFlags, - _In_ DWORD dwTimeout, - _In_ ULONG cHandles, - _In_reads_(cHandles) LPHANDLE pHandles, - _Out_ LPDWORD lpdwindex - ); - - -/* Flags for Synchronization API and Classes */ - -typedef enum tagCOWAIT_FLAGS -{ - COWAIT_DEFAULT = 0, - COWAIT_WAITALL = 1, - COWAIT_ALERTABLE = 2, - COWAIT_INPUTAVAILABLE = 4, - COWAIT_DISPATCH_CALLS = 8, - COWAIT_DISPATCH_WINDOW_MESSAGES = 0x10, -}COWAIT_FLAGS; - -#if (NTDDI_VERSION >= NTDDI_WIN8) - -typedef enum CWMO_FLAGS -{ - CWMO_DEFAULT = 0, - CWMO_DISPATCH_CALLS = 1, - CWMO_DISPATCH_WINDOW_MESSAGES = 2, -} CWMO_FLAGS; - -WINOLEAPI -CoWaitForMultipleObjects( - _In_ DWORD dwFlags, - _In_ DWORD dwTimeout, - _In_ ULONG cHandles, - _In_reads_(cHandles) const HANDLE* pHandles, - _Out_ LPDWORD lpdwindex - ); - - -#endif // (NTDDI_VERSION >= NTDDI_WIN8) - -#define CWMO_MAX_HANDLES 56 - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#endif // DCOM - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoGetTreatAsClass( - _In_ REFCLSID clsidOld, - _Out_ LPCLSID pClsidNew - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -/* for flushing OLESCM remote binding handles */ - -#if (_WIN32_WINNT >= 0x0501) - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -_Check_return_ WINOLEAPI -CoInvalidateRemoteMachineBindings( - _In_ LPOLESTR pszMachineName - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#endif - -#if (NTDDI_VERSION >= NTDDI_WINBLUE) - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -enum AgileReferenceOptions -{ - AGILEREFERENCE_DEFAULT = 0, - AGILEREFERENCE_DELAYEDMARSHAL = 1, -}; - -_Check_return_ WINOLEAPI -RoGetAgileReference( - _In_ enum AgileReferenceOptions options, - _In_ REFIID riid, - _In_ IUnknown* pUnk, - _COM_Outptr_ IAgileReference** ppAgileReference - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#endif - -#pragma region Application or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -/* the server dlls must define their DllGetClassObject and DllCanUnloadNow - * to match these; the typedefs are located here to ensure all are changed at - * the same time. - */ - -typedef HRESULT (STDAPICALLTYPE * LPFNGETCLASSOBJECT) (REFCLSID, REFIID, LPVOID *); -typedef HRESULT (STDAPICALLTYPE * LPFNCANUNLOADNOW)(void); - -_Check_return_ -STDAPI DllGetClassObject(_In_ REFCLSID rclsid, _In_ REFIID riid, _Outptr_ LPVOID FAR* ppv); - -__control_entrypoint(DllExport) -STDAPI DllCanUnloadNow(void); - -/****** Default Memory Allocation ******************************************/ -WINOLEAPI_(_Ret_opt_ _Post_writable_byte_size_(cb) __drv_allocatesMem(Mem) _Check_return_ LPVOID) -CoTaskMemAlloc( - _In_ SIZE_T cb - ); - -WINOLEAPI_(_Ret_opt_ _Post_writable_byte_size_(cb) _When_(cb > 0, __drv_allocatesMem(Mem) _Check_return_) LPVOID) -CoTaskMemRealloc( - _Pre_maybenull_ __drv_freesMem(Mem) _Post_invalid_ LPVOID pv, - _In_ SIZE_T cb - ); - -WINOLEAPI_(void) -CoTaskMemFree( - _Frees_ptr_opt_ LPVOID pv - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#pragma endregion - -#pragma region Desktop or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -WINOLEAPI -CoFileTimeNow( - _Out_ FILETIME FAR * lpFileTime - ); - -_Check_return_ WINOLEAPI -CLSIDFromProgIDEx( - _In_ LPCOLESTR lpszProgID, - _Out_ LPCLSID lpclsid - ); - - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -#pragma endregion - -#ifndef RC_INVOKED -#include -#endif // RC_INVOKED - -#endif // __COMBASEAPI_H__ diff --git a/src/custom/winsdk/include/um/coml2api.h b/src/custom/winsdk/include/um/coml2api.h deleted file mode 100644 index 948d8b1..0000000 --- a/src/custom/winsdk/include/um/coml2api.h +++ /dev/null @@ -1,311 +0,0 @@ -//+--------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// File: coml2api.h -// -// Contents: Structured storage, property sets, and related APIs. -// -//---------------------------------------------------------------------------- - -#if !defined(_COML2API_H_) -#define _COML2API_H_ - -#ifdef _MSC_VER -#pragma once -#endif // _MSC_VER - - -#include -#include - -#include -#include -#include - -#pragma region Application and Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) - -// -// Common typedefs for paramaters used in Storage API's, gleamed from storage.h -// Also contains Storage error codes, which should be moved into the storage -// idl files. -// - -#define CWCSTORAGENAME 32 - -/* Storage instantiation modes */ -#define STGM_DIRECT 0x00000000L -#define STGM_TRANSACTED 0x00010000L -#define STGM_SIMPLE 0x08000000L - -#define STGM_READ 0x00000000L -#define STGM_WRITE 0x00000001L -#define STGM_READWRITE 0x00000002L - -#define STGM_SHARE_DENY_NONE 0x00000040L -#define STGM_SHARE_DENY_READ 0x00000030L -#define STGM_SHARE_DENY_WRITE 0x00000020L -#define STGM_SHARE_EXCLUSIVE 0x00000010L - -#define STGM_PRIORITY 0x00040000L -#define STGM_DELETEONRELEASE 0x04000000L -#if (WINVER >= 400) -#define STGM_NOSCRATCH 0x00100000L -#endif /* WINVER */ - -#define STGM_CREATE 0x00001000L -#define STGM_CONVERT 0x00020000L -#define STGM_FAILIFTHERE 0x00000000L - -#define STGM_NOSNAPSHOT 0x00200000L -#if (_WIN32_WINNT >= 0x0500) -#define STGM_DIRECT_SWMR 0x00400000L -#endif - -typedef DWORD STGFMT; - -#define STGFMT_STORAGE 0 -#define STGFMT_NATIVE 1 -#define STGFMT_FILE 3 -#define STGFMT_ANY 4 -#define STGFMT_DOCFILE 5 - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ -#pragma endregion - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -// This is a legacy define to allow old component to builds -#define STGFMT_DOCUMENT 0 - -// Structured storage APIs -_Check_return_ -WINOLEAPI -StgCreateDocfile( - _In_opt_ _Null_terminated_ const WCHAR* pwcsName, - _In_ DWORD grfMode, - _Reserved_ DWORD reserved, - _Outptr_ IStorage** ppstgOpen - ); - - -_Check_return_ -WINOLEAPI -StgCreateDocfileOnILockBytes( - _In_ ILockBytes* plkbyt, - _In_ DWORD grfMode, - _In_ DWORD reserved, - _Outptr_ IStorage** ppstgOpen - ); - - -_Check_return_ -WINOLEAPI -StgOpenStorage( - _In_opt_ _Null_terminated_ const WCHAR* pwcsName, - _In_opt_ IStorage* pstgPriority, - _In_ DWORD grfMode, - _In_opt_z_ SNB snbExclude, - _In_ DWORD reserved, - _Outptr_ IStorage** ppstgOpen - ); - - -_Check_return_ -WINOLEAPI -StgOpenStorageOnILockBytes( - _In_ ILockBytes* plkbyt, - _In_opt_ IStorage* pstgPriority, - _In_ DWORD grfMode, - _In_opt_z_ SNB snbExclude, - _Reserved_ DWORD reserved, - _Outptr_ IStorage** ppstgOpen - ); - - -_Check_return_ -WINOLEAPI -StgIsStorageFile( - _In_ _Null_terminated_ const WCHAR* pwcsName - ); - - -_Check_return_ -WINOLEAPI -StgIsStorageILockBytes( - _In_ ILockBytes* plkbyt - ); - - -_Check_return_ -WINOLEAPI -StgSetTimes( - _In_ _Null_terminated_ const WCHAR* lpszName, - _In_opt_ const FILETIME* pctime, - _In_opt_ const FILETIME* patime, - _In_opt_ const FILETIME* pmtime - ); - - -// STG initialization options for StgCreateStorageEx and StgOpenStorageEx -#if _WIN32_WINNT == 0x500 -#define STGOPTIONS_VERSION 1 -#elif _WIN32_WINNT > 0x500 -#define STGOPTIONS_VERSION 2 -#else -#define STGOPTIONS_VERSION 0 -#endif - -typedef struct tagSTGOPTIONS -{ - USHORT usVersion; // Versions 1 and 2 supported - USHORT reserved; // must be 0 for padding - ULONG ulSectorSize; // docfile header sector size (512) -#if STGOPTIONS_VERSION >= 2 - const WCHAR *pwcsTemplateFile; // version 2 or above -#endif -} STGOPTIONS; - -_Check_return_ -WINOLEAPI -StgCreateStorageEx( - _In_opt_ _Null_terminated_ const WCHAR* pwcsName, - _In_ DWORD grfMode, - _In_ DWORD stgfmt, - _In_ DWORD grfAttrs, - _Inout_opt_ STGOPTIONS* pStgOptions, - _In_opt_ PSECURITY_DESCRIPTOR pSecurityDescriptor, - _In_ REFIID riid, - _Outptr_ void** ppObjectOpen - ); - - -_Check_return_ -WINOLEAPI -StgOpenStorageEx( - _In_ _Null_terminated_ const WCHAR* pwcsName, - _In_ DWORD grfMode, - _In_ DWORD stgfmt, - _In_ DWORD grfAttrs, - _Inout_opt_ STGOPTIONS* pStgOptions, - _In_opt_ PSECURITY_DESCRIPTOR pSecurityDescriptor, - _In_ REFIID riid, - _Outptr_ void** ppObjectOpen - ); - - -#ifndef _STGCREATEPROPSTG_DEFINED_ - -_Check_return_ -WINOLEAPI -StgCreatePropStg( - _In_ IUnknown* pUnk, - _In_ REFFMTID fmtid, - _In_ const CLSID* pclsid, - _In_ DWORD grfFlags, - _Reserved_ DWORD dwReserved, - _Outptr_ IPropertyStorage** ppPropStg - ); - - -_Check_return_ -WINOLEAPI -StgOpenPropStg( - _In_ IUnknown* pUnk, - _In_ REFFMTID fmtid, - _In_ DWORD grfFlags, - _Reserved_ DWORD dwReserved, - _Outptr_ IPropertyStorage** ppPropStg - ); - - -_Check_return_ -WINOLEAPI -StgCreatePropSetStg( - _In_ IStorage* pStorage, - _Reserved_ DWORD dwReserved, - _Outptr_ IPropertySetStorage** ppPropSetStg - ); - - -#define CCH_MAX_PROPSTG_NAME 31 - -_Check_return_ -WINOLEAPI -FmtIdToPropStgName( - _In_ const FMTID* pfmtid, - _Out_writes_(CCH_MAX_PROPSTG_NAME + 1) LPOLESTR oszName - ); - - -_Check_return_ -WINOLEAPI -PropStgNameToFmtId( - _In_ const LPOLESTR oszName, - _Out_ FMTID* pfmtid - ); - - -#endif // _STGCREATEPROPSTG_DEFINED_ - -// Helper functions -WINOLEAPI -ReadClassStg( - _In_ LPSTORAGE pStg, - _Out_ CLSID FAR * pclsid - ); - - -WINOLEAPI -WriteClassStg( - _In_ LPSTORAGE pStg, - _In_ REFCLSID rclsid - ); - - -WINOLEAPI -ReadClassStm( - _In_ LPSTREAM pStm, - _Out_ CLSID FAR * pclsid - ); - - -WINOLEAPI -WriteClassStm( - _In_ LPSTREAM pStm, - _In_ REFCLSID rclsid - ); - - -// Storage utility APIs -_Check_return_ -WINOLEAPI -GetHGlobalFromILockBytes( - _In_ LPLOCKBYTES plkbyt, - _Out_ HGLOBAL FAR * phglobal - ); - - -_Check_return_ -WINOLEAPI -CreateILockBytesOnHGlobal( - _In_opt_ HGLOBAL hGlobal, - _In_ BOOL fDeleteOnRelease, - _Outptr_ LPLOCKBYTES FAR * pplkbyt - ); - - -// ConvertTo APIs -WINOLEAPI -GetConvertStg( - _In_ LPSTORAGE pStg - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - -#endif // __COML2API_H__ diff --git a/src/custom/winsdk/include/um/crtsys/WinBase.h b/src/custom/winsdk/include/um/crtsys/WinBase.h new file mode 100644 index 0000000..c461399 --- /dev/null +++ b/src/custom/winsdk/include/um/crtsys/WinBase.h @@ -0,0 +1,24 @@ +#ifndef _CRTSYS_WINBASE_ +#define _CRTSYS_WINBASE_ + +#include +#include + +#include + +#include "fileapi.h" +#include "processthreadsapi.h" + + + +#define OFS_MAXPATHNAME 128 +typedef struct _OFSTRUCT { + BYTE cBytes; + BYTE fFixedDisk; + WORD nErrCode; + WORD Reserved1; + WORD Reserved2; + CHAR szPathName[OFS_MAXPATHNAME]; +} OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT; + +#endif // _CRTSYS_WINBASE_ \ No newline at end of file diff --git a/src/custom/winsdk/include/um/crtsys/WinNls.h b/src/custom/winsdk/include/um/crtsys/WinNls.h new file mode 100644 index 0000000..17dea5c --- /dev/null +++ b/src/custom/winsdk/include/um/crtsys/WinNls.h @@ -0,0 +1,59 @@ +#ifndef _CRTSYS_WINNLS_ +#define _CRTSYS_WINNLS_ + +#include + +#include "datetimeapi.h" +#include "stringapiset.h" + +EXTERN_C_START + +// crt/src/stl/xdateord.cpp +WINBASEAPI +int WINAPI GetLocaleInfoEx(_In_opt_ LPCWSTR lpLocaleName, _In_ LCTYPE LCType, + _Out_writes_to_opt_(cchData, return ) + LPWSTR lpLCData, + _In_ int cchData); + + + +// ucrt/internal/winapi_thunks.cpp +WINBASEAPI +int +WINAPI +GetLocaleInfoW( + _In_ LCID Locale, + _In_ LCTYPE LCType, + _Out_writes_opt_(cchData) LPWSTR lpLCData, + _In_ int cchData); + + +// ucrt\locale\getqloc_downlevel.cpp +typedef BOOL (CALLBACK* LOCALE_ENUMPROCW)(LPWSTR); // DEPRECATED: please use LOCALE_ENUMPROCEX + +WINBASEAPI +BOOL +WINAPI +EnumSystemLocalesW( + _In_ LOCALE_ENUMPROCW lpLocaleEnumProc, + _In_ DWORD dwFlags); + + + +// ucrt/inc/corecrt_internal.h +typedef BOOL (CALLBACK* LOCALE_ENUMPROCEX)(LPWSTR, DWORD, LPARAM); + +// ucrt/internal/winapi_thunks.cpp +WINBASEAPI +BOOL +WINAPI +EnumSystemLocalesEx( + _In_ LOCALE_ENUMPROCEX lpLocaleEnumProcEx, + _In_ DWORD dwFlags, + _In_ LPARAM lParam, + _In_opt_ LPVOID lpReserved +); + +EXTERN_C_END + +#endif // _CRTSYS_WINNLS_ diff --git a/src/custom/winsdk/include/um/crtsys/WinUser.h b/src/custom/winsdk/include/um/crtsys/WinUser.h new file mode 100644 index 0000000..f9e4bd5 --- /dev/null +++ b/src/custom/winsdk/include/um/crtsys/WinUser.h @@ -0,0 +1,120 @@ +#ifndef _CRTSYS_WINUSER_ +#define _CRTSYS_WINUSER_ + +#include + +typedef struct tagMSG *LPMSG; + + + +#ifndef NOMB + +/* + * MessageBox() Flags + */ +#define MB_OK 0x00000000L +#define MB_OKCANCEL 0x00000001L +#define MB_ABORTRETRYIGNORE 0x00000002L +#define MB_YESNOCANCEL 0x00000003L +#define MB_YESNO 0x00000004L +#define MB_RETRYCANCEL 0x00000005L +#if(WINVER >= 0x0500) +#define MB_CANCELTRYCONTINUE 0x00000006L +#endif /* WINVER >= 0x0500 */ + + +#define MB_ICONHAND 0x00000010L +#define MB_ICONQUESTION 0x00000020L +#define MB_ICONEXCLAMATION 0x00000030L +#define MB_ICONASTERISK 0x00000040L + +#if(WINVER >= 0x0400) +#define MB_USERICON 0x00000080L +#define MB_ICONWARNING MB_ICONEXCLAMATION +#define MB_ICONERROR MB_ICONHAND +#endif /* WINVER >= 0x0400 */ + +#define MB_ICONINFORMATION MB_ICONASTERISK +#define MB_ICONSTOP MB_ICONHAND + +#define MB_DEFBUTTON1 0x00000000L +#define MB_DEFBUTTON2 0x00000100L +#define MB_DEFBUTTON3 0x00000200L +#if(WINVER >= 0x0400) +#define MB_DEFBUTTON4 0x00000300L +#endif /* WINVER >= 0x0400 */ + +#define MB_APPLMODAL 0x00000000L +#define MB_SYSTEMMODAL 0x00001000L +#define MB_TASKMODAL 0x00002000L +#if(WINVER >= 0x0400) +#define MB_HELP 0x00004000L // Help Button +#endif /* WINVER >= 0x0400 */ + +#define MB_NOFOCUS 0x00008000L +#define MB_SETFOREGROUND 0x00010000L +#define MB_DEFAULT_DESKTOP_ONLY 0x00020000L + +#if(WINVER >= 0x0400) +#define MB_TOPMOST 0x00040000L +#define MB_RIGHT 0x00080000L +#define MB_RTLREADING 0x00100000L + +#endif /* WINVER >= 0x0400 */ + +#ifdef _WIN32_WINNT +#if (_WIN32_WINNT >= 0x0400) +#define MB_SERVICE_NOTIFICATION 0x00200000L +#else +#define MB_SERVICE_NOTIFICATION 0x00040000L +#endif +#define MB_SERVICE_NOTIFICATION_NT3X 0x00040000L +#endif + +#define MB_TYPEMASK 0x0000000FL +#define MB_ICONMASK 0x000000F0L +#define MB_DEFMASK 0x00000F00L +#define MB_MODEMASK 0x00003000L +#define MB_MISCMASK 0x0000C000L + +#endif /* !NOMB */ + + + +/* + * Dialog Box Command IDs + */ +#define IDOK 1 +#define IDCANCEL 2 +#define IDABORT 3 +#define IDRETRY 4 +#define IDIGNORE 5 +#define IDYES 6 +#define IDNO 7 +#if(WINVER >= 0x0400) +#define IDCLOSE 8 +#define IDHELP 9 +#endif /* WINVER >= 0x0400 */ + +#if(WINVER >= 0x0500) +#define IDTRYAGAIN 10 +#define IDCONTINUE 11 +#endif /* WINVER >= 0x0500 */ + +#if(WINVER >= 0x0501) +#ifndef IDTIMEOUT +#define IDTIMEOUT 32000 +#endif +#endif /* WINVER >= 0x0501 */ + + + +typedef CONST struct DLGTEMPLATE *LPCDLGTEMPLATEA; +typedef CONST struct DLGTEMPLATE *LPCDLGTEMPLATEW; +#ifdef UNICODE +typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE; +#else +typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE; +#endif // UNICODE + +#endif // _CRTSYS_WINUSER_ diff --git a/src/custom/winsdk/include/um/crtsys/Windows.h b/src/custom/winsdk/include/um/crtsys/Windows.h new file mode 100644 index 0000000..4e9c4e3 --- /dev/null +++ b/src/custom/winsdk/include/um/crtsys/Windows.h @@ -0,0 +1,20 @@ +#ifndef _CRTSYS_WINDOWS_ +#define _CRTSYS_WINDOWS_ + +#undef _CTYPE_DISABLE_MACROS +#include + +#include +#include +#include + +// winbase.h +#include // consoleapi.h +#include "fileapi.h" +#include "processthreadsapi.h" +// winbase.h + +#include "WinUser.h" +#include "winnls.h" + +#endif // _CRTSYS_WINDOWS_ \ No newline at end of file diff --git a/src/custom/winsdk/include/um/crtsys/commdlg.h b/src/custom/winsdk/include/um/crtsys/commdlg.h new file mode 100644 index 0000000..ce0fe85 --- /dev/null +++ b/src/custom/winsdk/include/um/crtsys/commdlg.h @@ -0,0 +1,4 @@ +#ifndef _CRTSYS_INC_COMMDLG +#define _CRTSYS_INC_COMMDLG + +#endif // _CRTSYS_INC_COMMDLG \ No newline at end of file diff --git a/src/custom/winsdk/include/um/crtsys/datetimeapi.h b/src/custom/winsdk/include/um/crtsys/datetimeapi.h new file mode 100644 index 0000000..59b3986 --- /dev/null +++ b/src/custom/winsdk/include/um/crtsys/datetimeapi.h @@ -0,0 +1,40 @@ +#ifndef _CRTSYS_DATETIMEAPI_H_ +#define _CRTSYS_DATETIMEAPI_H_ + +#include +#include +#include +#include + +EXTERN_C_START + +// ucrt/internal/winapi_thunks.cpp +WINBASEAPI +int +WINAPI +GetDateFormatW( + _In_ LCID Locale, + _In_ DWORD dwFlags, + _In_opt_ CONST SYSTEMTIME* lpDate, + _In_opt_ LPCWSTR lpFormat, + _Out_writes_opt_(cchDate) LPWSTR lpDateStr, + _In_ int cchDate + ); + +// ucrt/internal/winapi_thunks.cpp +WINBASEAPI +int +WINAPI +GetTimeFormatW( + _In_ LCID Locale, + _In_ DWORD dwFlags, + _In_opt_ CONST SYSTEMTIME* lpTime, + _In_opt_ LPCWSTR lpFormat, + _Out_writes_opt_(cchTime) LPWSTR lpTimeStr, + _In_ int cchTime + ); + +EXTERN_C_END + +#endif // _CRTSYS_DATETIMEAPI_H_ + diff --git a/src/custom/winsdk/include/um/crtsys/fileapi.h b/src/custom/winsdk/include/um/crtsys/fileapi.h new file mode 100644 index 0000000..7d7f3d6 --- /dev/null +++ b/src/custom/winsdk/include/um/crtsys/fileapi.h @@ -0,0 +1,21 @@ +#ifndef _CRTSYS_APISETFILE_ +#define _CRTSYS_APISETFILE_ + +#include +#include +#include +#include + +EXTERN_C_START + +// ucrt/inc/corecrt_internal.h +WINBASEAPI +BOOL +WINAPI +FindClose( + _Inout_ HANDLE hFindFile + ); + +EXTERN_C_END + +#endif // _CRTSYS_APISETFILE_ diff --git a/src/custom/winsdk/include/um/crtsys/processthreadsapi.h b/src/custom/winsdk/include/um/crtsys/processthreadsapi.h new file mode 100644 index 0000000..c4c44f8 --- /dev/null +++ b/src/custom/winsdk/include/um/crtsys/processthreadsapi.h @@ -0,0 +1,21 @@ +#ifndef _CRTSYS_PROCESSTHREADSAPI_H_ +#define _CRTSYS_PROCESSTHREADSAPI_H_ + +#include +#include +#include +#include + +EXTERN_C_START + +// ucrt\startup\thread.cpp +WINBASEAPI +DWORD +WINAPI +ResumeThread( + _In_ HANDLE hThread + ); + +EXTERN_C_END + +#endif // _CRTSYS_PROCESSTHREADSAPI_H_ diff --git a/src/custom/winsdk/include/um/crtsys/prsht.h b/src/custom/winsdk/include/um/crtsys/prsht.h new file mode 100644 index 0000000..309e401 --- /dev/null +++ b/src/custom/winsdk/include/um/crtsys/prsht.h @@ -0,0 +1,4 @@ +#ifndef _CRTSYS_PRSHT_H_ +#define _CRTSYS_PRSHT_H_ + +#endif // _CRTSYS_PRSHT_H_ \ No newline at end of file diff --git a/src/custom/winsdk/include/um/crtsys/stringapiset.h b/src/custom/winsdk/include/um/crtsys/stringapiset.h new file mode 100644 index 0000000..a724e02 --- /dev/null +++ b/src/custom/winsdk/include/um/crtsys/stringapiset.h @@ -0,0 +1,19 @@ +#ifndef _CRTSYS_APISETSTRING_ +#define _CRTSYS_APISETSTRING_ + +#include +#include +#include +#include "winnls.h" + +EXTERN_C_START + +// crt\src\stl\xgetwctype.cpp +WINBASEAPI +BOOL WINAPI GetStringTypeW(_In_ DWORD dwInfoType, + _In_NLS_string_(cchSrc) LPCWCH lpSrcStr, + _In_ int cchSrc, _Out_ LPWORD lpCharType); + +EXTERN_C_END + +#endif // _CRTSYS_APISETSTRING_ diff --git a/src/custom/winsdk/include/um/crtsys/winternl.h b/src/custom/winsdk/include/um/crtsys/winternl.h new file mode 100644 index 0000000..73fdf4b --- /dev/null +++ b/src/custom/winsdk/include/um/crtsys/winternl.h @@ -0,0 +1,10 @@ +#ifndef _CRTSYS_WINTERNL_ +#define _CRTSYS_WINTERNL_ + +#include + +#if !defined(_WDM_INCLUDED_) +#include +#endif + +#endif // _CRTSYS_WINTERNL_ diff --git a/src/custom/winsdk/include/um/msxml.h b/src/custom/winsdk/include/um/msxml.h deleted file mode 100644 index 25bac75..0000000 --- a/src/custom/winsdk/include/um/msxml.h +++ /dev/null @@ -1,10122 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - - -#ifndef __msxml_h__ -#define __msxml_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IXMLDOMImplementation_FWD_DEFINED__ -#define __IXMLDOMImplementation_FWD_DEFINED__ -typedef interface IXMLDOMImplementation IXMLDOMImplementation; - -#endif /* __IXMLDOMImplementation_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMNode_FWD_DEFINED__ -#define __IXMLDOMNode_FWD_DEFINED__ -typedef interface IXMLDOMNode IXMLDOMNode; - -#endif /* __IXMLDOMNode_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMDocumentFragment_FWD_DEFINED__ -#define __IXMLDOMDocumentFragment_FWD_DEFINED__ -typedef interface IXMLDOMDocumentFragment IXMLDOMDocumentFragment; - -#endif /* __IXMLDOMDocumentFragment_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMDocument_FWD_DEFINED__ -#define __IXMLDOMDocument_FWD_DEFINED__ -typedef interface IXMLDOMDocument IXMLDOMDocument; - -#endif /* __IXMLDOMDocument_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMNodeList_FWD_DEFINED__ -#define __IXMLDOMNodeList_FWD_DEFINED__ -typedef interface IXMLDOMNodeList IXMLDOMNodeList; - -#endif /* __IXMLDOMNodeList_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMNamedNodeMap_FWD_DEFINED__ -#define __IXMLDOMNamedNodeMap_FWD_DEFINED__ -typedef interface IXMLDOMNamedNodeMap IXMLDOMNamedNodeMap; - -#endif /* __IXMLDOMNamedNodeMap_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMCharacterData_FWD_DEFINED__ -#define __IXMLDOMCharacterData_FWD_DEFINED__ -typedef interface IXMLDOMCharacterData IXMLDOMCharacterData; - -#endif /* __IXMLDOMCharacterData_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMAttribute_FWD_DEFINED__ -#define __IXMLDOMAttribute_FWD_DEFINED__ -typedef interface IXMLDOMAttribute IXMLDOMAttribute; - -#endif /* __IXMLDOMAttribute_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMElement_FWD_DEFINED__ -#define __IXMLDOMElement_FWD_DEFINED__ -typedef interface IXMLDOMElement IXMLDOMElement; - -#endif /* __IXMLDOMElement_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMText_FWD_DEFINED__ -#define __IXMLDOMText_FWD_DEFINED__ -typedef interface IXMLDOMText IXMLDOMText; - -#endif /* __IXMLDOMText_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMComment_FWD_DEFINED__ -#define __IXMLDOMComment_FWD_DEFINED__ -typedef interface IXMLDOMComment IXMLDOMComment; - -#endif /* __IXMLDOMComment_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMProcessingInstruction_FWD_DEFINED__ -#define __IXMLDOMProcessingInstruction_FWD_DEFINED__ -typedef interface IXMLDOMProcessingInstruction IXMLDOMProcessingInstruction; - -#endif /* __IXMLDOMProcessingInstruction_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMCDATASection_FWD_DEFINED__ -#define __IXMLDOMCDATASection_FWD_DEFINED__ -typedef interface IXMLDOMCDATASection IXMLDOMCDATASection; - -#endif /* __IXMLDOMCDATASection_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMDocumentType_FWD_DEFINED__ -#define __IXMLDOMDocumentType_FWD_DEFINED__ -typedef interface IXMLDOMDocumentType IXMLDOMDocumentType; - -#endif /* __IXMLDOMDocumentType_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMNotation_FWD_DEFINED__ -#define __IXMLDOMNotation_FWD_DEFINED__ -typedef interface IXMLDOMNotation IXMLDOMNotation; - -#endif /* __IXMLDOMNotation_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMEntity_FWD_DEFINED__ -#define __IXMLDOMEntity_FWD_DEFINED__ -typedef interface IXMLDOMEntity IXMLDOMEntity; - -#endif /* __IXMLDOMEntity_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMEntityReference_FWD_DEFINED__ -#define __IXMLDOMEntityReference_FWD_DEFINED__ -typedef interface IXMLDOMEntityReference IXMLDOMEntityReference; - -#endif /* __IXMLDOMEntityReference_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMParseError_FWD_DEFINED__ -#define __IXMLDOMParseError_FWD_DEFINED__ -typedef interface IXMLDOMParseError IXMLDOMParseError; - -#endif /* __IXMLDOMParseError_FWD_DEFINED__ */ - - -#ifndef __IXTLRuntime_FWD_DEFINED__ -#define __IXTLRuntime_FWD_DEFINED__ -typedef interface IXTLRuntime IXTLRuntime; - -#endif /* __IXTLRuntime_FWD_DEFINED__ */ - - -#ifndef __XMLDOMDocumentEvents_FWD_DEFINED__ -#define __XMLDOMDocumentEvents_FWD_DEFINED__ -typedef interface XMLDOMDocumentEvents XMLDOMDocumentEvents; - -#endif /* __XMLDOMDocumentEvents_FWD_DEFINED__ */ - - -#ifndef __DOMDocument_FWD_DEFINED__ -#define __DOMDocument_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class DOMDocument DOMDocument; -#else -typedef struct DOMDocument DOMDocument; -#endif /* __cplusplus */ - -#endif /* __DOMDocument_FWD_DEFINED__ */ - - -#ifndef __DOMFreeThreadedDocument_FWD_DEFINED__ -#define __DOMFreeThreadedDocument_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class DOMFreeThreadedDocument DOMFreeThreadedDocument; -#else -typedef struct DOMFreeThreadedDocument DOMFreeThreadedDocument; -#endif /* __cplusplus */ - -#endif /* __DOMFreeThreadedDocument_FWD_DEFINED__ */ - - -#ifndef __IXMLHttpRequest_FWD_DEFINED__ -#define __IXMLHttpRequest_FWD_DEFINED__ -typedef interface IXMLHttpRequest IXMLHttpRequest; - -#endif /* __IXMLHttpRequest_FWD_DEFINED__ */ - - -#ifndef __XMLHTTPRequest_FWD_DEFINED__ -#define __XMLHTTPRequest_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XMLHTTPRequest XMLHTTPRequest; -#else -typedef struct XMLHTTPRequest XMLHTTPRequest; -#endif /* __cplusplus */ - -#endif /* __XMLHTTPRequest_FWD_DEFINED__ */ - - -#ifndef __IXMLDSOControl_FWD_DEFINED__ -#define __IXMLDSOControl_FWD_DEFINED__ -typedef interface IXMLDSOControl IXMLDSOControl; - -#endif /* __IXMLDSOControl_FWD_DEFINED__ */ - - -#ifndef __XMLDSOControl_FWD_DEFINED__ -#define __XMLDSOControl_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XMLDSOControl XMLDSOControl; -#else -typedef struct XMLDSOControl XMLDSOControl; -#endif /* __cplusplus */ - -#endif /* __XMLDSOControl_FWD_DEFINED__ */ - - -#ifndef __IXMLElementCollection_FWD_DEFINED__ -#define __IXMLElementCollection_FWD_DEFINED__ -typedef interface IXMLElementCollection IXMLElementCollection; - -#endif /* __IXMLElementCollection_FWD_DEFINED__ */ - - -#ifndef __IXMLDocument_FWD_DEFINED__ -#define __IXMLDocument_FWD_DEFINED__ -typedef interface IXMLDocument IXMLDocument; - -#endif /* __IXMLDocument_FWD_DEFINED__ */ - - -#ifndef __IXMLDocument2_FWD_DEFINED__ -#define __IXMLDocument2_FWD_DEFINED__ -typedef interface IXMLDocument2 IXMLDocument2; - -#endif /* __IXMLDocument2_FWD_DEFINED__ */ - - -#ifndef __IXMLElement_FWD_DEFINED__ -#define __IXMLElement_FWD_DEFINED__ -typedef interface IXMLElement IXMLElement; - -#endif /* __IXMLElement_FWD_DEFINED__ */ - - -#ifndef __IXMLElement2_FWD_DEFINED__ -#define __IXMLElement2_FWD_DEFINED__ -typedef interface IXMLElement2 IXMLElement2; - -#endif /* __IXMLElement2_FWD_DEFINED__ */ - - -#ifndef __IXMLAttribute_FWD_DEFINED__ -#define __IXMLAttribute_FWD_DEFINED__ -typedef interface IXMLAttribute IXMLAttribute; - -#endif /* __IXMLAttribute_FWD_DEFINED__ */ - - -#ifndef __IXMLError_FWD_DEFINED__ -#define __IXMLError_FWD_DEFINED__ -typedef interface IXMLError IXMLError; - -#endif /* __IXMLError_FWD_DEFINED__ */ - - -#ifndef __XMLDocument_FWD_DEFINED__ -#define __XMLDocument_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XMLDocument XMLDocument; -#else -typedef struct XMLDocument XMLDocument; -#endif /* __cplusplus */ - -#endif /* __XMLDocument_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "unknwn.h" -#include "objidl.h" -#include "oaidl.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_msxml_0000_0000 */ -/* [local] */ - -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (C) Microsoft Corporation, 1997-1998. -// -//-------------------------------------------------------------------------- -#pragma warning(push) -#pragma warning(disable:4001) -#pragma once -#pragma warning(push) -#pragma warning(disable:4001) -#pragma once -#pragma warning(pop) -#pragma warning(pop) -#pragma region Desktop Family -#pragma endregion -#include -#if _MSC_VER >= 1200 -#pragma warning(push) -#pragma warning(disable:4820) /* padding added after data member */ -#endif -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -typedef struct _xml_error - { - unsigned int _nLine; - BSTR _pchBuf; - unsigned int _cchBuf; - unsigned int _ich; - BSTR _pszFound; - BSTR _pszExpected; - DWORD _reserved1; - DWORD _reserved2; - } XML_ERROR; - - - -extern RPC_IF_HANDLE __MIDL_itf_msxml_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_msxml_0000_0000_v0_0_s_ifspec; - - -#ifndef __MSXML_LIBRARY_DEFINED__ -#define __MSXML_LIBRARY_DEFINED__ - -/* library MSXML */ -/* [version][lcid][helpstring][uuid] */ - -// -// Microsoft Windows -// Copyright (C) Microsoft Corporation, 1998. -// -//-------------------------------------------------------------------------- -#pragma region Desktop Family -#pragma endregion - - - - - - - - - - - - - - - - - - - -typedef /* [helpstring] */ -enum tagDOMNodeType - { - NODE_INVALID = 0, - NODE_ELEMENT = ( NODE_INVALID + 1 ) , - NODE_ATTRIBUTE = ( NODE_ELEMENT + 1 ) , - NODE_TEXT = ( NODE_ATTRIBUTE + 1 ) , - NODE_CDATA_SECTION = ( NODE_TEXT + 1 ) , - NODE_ENTITY_REFERENCE = ( NODE_CDATA_SECTION + 1 ) , - NODE_ENTITY = ( NODE_ENTITY_REFERENCE + 1 ) , - NODE_PROCESSING_INSTRUCTION = ( NODE_ENTITY + 1 ) , - NODE_COMMENT = ( NODE_PROCESSING_INSTRUCTION + 1 ) , - NODE_DOCUMENT = ( NODE_COMMENT + 1 ) , - NODE_DOCUMENT_TYPE = ( NODE_DOCUMENT + 1 ) , - NODE_DOCUMENT_FRAGMENT = ( NODE_DOCUMENT_TYPE + 1 ) , - NODE_NOTATION = ( NODE_DOCUMENT_FRAGMENT + 1 ) - } DOMNodeType; - -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (C) Microsoft Corporation, 1998. -// -//-------------------------------------------------------------------------- -#pragma region Desktop Family -#pragma endregion - - - - - - - - - -typedef /* [helpstring] */ -enum tagXMLEMEM_TYPE - { - XMLELEMTYPE_ELEMENT = 0, - XMLELEMTYPE_TEXT = ( XMLELEMTYPE_ELEMENT + 1 ) , - XMLELEMTYPE_COMMENT = ( XMLELEMTYPE_TEXT + 1 ) , - XMLELEMTYPE_DOCUMENT = ( XMLELEMTYPE_COMMENT + 1 ) , - XMLELEMTYPE_DTD = ( XMLELEMTYPE_DOCUMENT + 1 ) , - XMLELEMTYPE_PI = ( XMLELEMTYPE_DTD + 1 ) , - XMLELEMTYPE_OTHER = ( XMLELEMTYPE_PI + 1 ) - } XMLELEM_TYPE; - - -EXTERN_C const IID LIBID_MSXML; - -#ifndef __IXMLDOMImplementation_INTERFACE_DEFINED__ -#define __IXMLDOMImplementation_INTERFACE_DEFINED__ - -/* interface IXMLDOMImplementation */ -/* [uuid][dual][oleautomation][unique][nonextensible][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMImplementation; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8F-7B36-11d2-B20E-00C04F983E60") - IXMLDOMImplementation : public IDispatch - { - public: - virtual /* [id] */ HRESULT STDMETHODCALLTYPE hasFeature( - /* [in] */ BSTR feature, - /* [in] */ BSTR version, - /* [retval][out] */ VARIANT_BOOL *hasFeature) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMImplementationVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMImplementation * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMImplementation * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMImplementation * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMImplementation * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMImplementation * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMImplementation * 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 )( - IXMLDOMImplementation * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *hasFeature )( - IXMLDOMImplementation * This, - /* [in] */ BSTR feature, - /* [in] */ BSTR version, - /* [retval][out] */ VARIANT_BOOL *hasFeature); - - END_INTERFACE - } IXMLDOMImplementationVtbl; - - interface IXMLDOMImplementation - { - CONST_VTBL struct IXMLDOMImplementationVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMImplementation_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMImplementation_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMImplementation_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMImplementation_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMImplementation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMImplementation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMImplementation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMImplementation_hasFeature(This,feature,version,hasFeature) \ - ( (This)->lpVtbl -> hasFeature(This,feature,version,hasFeature) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMImplementation_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMNode_INTERFACE_DEFINED__ -#define __IXMLDOMNode_INTERFACE_DEFINED__ - -/* interface IXMLDOMNode */ -/* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMNode; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF80-7B36-11d2-B20E-00C04F983E60") - IXMLDOMNode : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeName( - /* [retval][out] */ BSTR *name) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeValue( - /* [retval][out] */ VARIANT *value) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_nodeValue( - /* [in] */ VARIANT value) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeType( - /* [retval][out] */ DOMNodeType *type) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_parentNode( - /* [retval][out] */ IXMLDOMNode **parent) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_childNodes( - /* [retval][out] */ IXMLDOMNodeList **childList) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_firstChild( - /* [retval][out] */ IXMLDOMNode **firstChild) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_lastChild( - /* [retval][out] */ IXMLDOMNode **lastChild) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_previousSibling( - /* [retval][out] */ IXMLDOMNode **previousSibling) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nextSibling( - /* [retval][out] */ IXMLDOMNode **nextSibling) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_attributes( - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE insertBefore( - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE replaceChild( - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeChild( - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE appendChild( - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE hasChildNodes( - /* [retval][out] */ VARIANT_BOOL *hasChild) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ownerDocument( - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE cloneNode( - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeTypeString( - /* [out][retval] */ BSTR *nodeType) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_text( - /* [out][retval] */ BSTR *text) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_text( - /* [in] */ BSTR text) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_specified( - /* [retval][out] */ VARIANT_BOOL *isSpecified) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_definition( - /* [out][retval] */ IXMLDOMNode **definitionNode) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeTypedValue( - /* [out][retval] */ VARIANT *typedValue) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_nodeTypedValue( - /* [in] */ VARIANT typedValue) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_dataType( - /* [out][retval] */ VARIANT *dataTypeName) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_dataType( - /* [in] */ BSTR dataTypeName) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_xml( - /* [out][retval] */ BSTR *xmlString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE transformNode( - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE selectNodes( - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE selectSingleNode( - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_parsed( - /* [out][retval] */ VARIANT_BOOL *isParsed) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_namespaceURI( - /* [out][retval] */ BSTR *namespaceURI) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_prefix( - /* [out][retval] */ BSTR *prefixString) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_baseName( - /* [out][retval] */ BSTR *nameString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE transformNodeToObject( - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMNodeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMNode * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMNode * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMNode * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMNode * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMNode * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMNode * 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 )( - IXMLDOMNode * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMNode * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMNode * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMNode * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMNode * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMNode * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMNode * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMNode * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMNode * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMNode * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMNode * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMNode * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMNode * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMNode * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMNode * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMNode * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMNode * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - END_INTERFACE - } IXMLDOMNodeVtbl; - - interface IXMLDOMNode - { - CONST_VTBL struct IXMLDOMNodeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMNode_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMNode_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMNode_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMNode_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMNode_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMNode_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMNode_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMNode_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMNode_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMNode_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMNode_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMNode_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMNode_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMNode_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMNode_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMNode_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMNode_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMNode_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMNode_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMNode_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMNode_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMNode_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMNode_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMNode_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMNode_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMNode_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMNode_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMNode_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMNode_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMNode_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMNode_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMNode_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMNode_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMNode_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMNode_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMNode_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMNode_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMNode_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMNode_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMNode_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMNode_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMNode_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMNode_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMNode_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMDocumentFragment_INTERFACE_DEFINED__ -#define __IXMLDOMDocumentFragment_INTERFACE_DEFINED__ - -/* interface IXMLDOMDocumentFragment */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMDocumentFragment; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3efaa413-272f-11d2-836f-0000f87a7782") - IXMLDOMDocumentFragment : public IXMLDOMNode - { - public: - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMDocumentFragmentVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMDocumentFragment * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMDocumentFragment * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMDocumentFragment * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMDocumentFragment * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMDocumentFragment * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMDocumentFragment * 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 )( - IXMLDOMDocumentFragment * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMDocumentFragment * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMDocumentFragment * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMDocumentFragment * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMDocumentFragment * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMDocumentFragment * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMDocumentFragment * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMDocumentFragment * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - END_INTERFACE - } IXMLDOMDocumentFragmentVtbl; - - interface IXMLDOMDocumentFragment - { - CONST_VTBL struct IXMLDOMDocumentFragmentVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMDocumentFragment_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMDocumentFragment_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMDocumentFragment_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMDocumentFragment_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMDocumentFragment_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMDocumentFragment_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMDocumentFragment_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMDocumentFragment_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMDocumentFragment_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMDocumentFragment_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMDocumentFragment_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMDocumentFragment_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMDocumentFragment_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMDocumentFragment_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMDocumentFragment_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMDocumentFragment_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMDocumentFragment_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMDocumentFragment_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMDocumentFragment_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMDocumentFragment_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMDocumentFragment_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMDocumentFragment_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMDocumentFragment_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMDocumentFragment_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMDocumentFragment_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMDocumentFragment_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMDocumentFragment_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMDocumentFragment_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMDocumentFragment_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMDocumentFragment_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMDocumentFragment_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMDocumentFragment_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMDocumentFragment_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMDocumentFragment_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMDocumentFragment_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMDocumentFragment_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMDocumentFragment_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMDocumentFragment_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMDocumentFragment_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMDocumentFragment_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMDocumentFragment_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMDocumentFragment_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMDocumentFragment_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMDocumentFragment_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMDocument_INTERFACE_DEFINED__ -#define __IXMLDOMDocument_INTERFACE_DEFINED__ - -/* interface IXMLDOMDocument */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMDocument; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF81-7B36-11d2-B20E-00C04F983E60") - IXMLDOMDocument : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_doctype( - /* [retval][out] */ IXMLDOMDocumentType **documentType) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_implementation( - /* [retval][out] */ IXMLDOMImplementation **impl) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_documentElement( - /* [retval][out] */ IXMLDOMElement **DOMElement) = 0; - - virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_documentElement( - /* [in] */ IXMLDOMElement *DOMElement) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createElement( - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMElement **element) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createDocumentFragment( - /* [retval][out] */ IXMLDOMDocumentFragment **docFrag) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createTextNode( - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMText **text) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createComment( - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMComment **comment) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createCDATASection( - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMCDATASection **cdata) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createProcessingInstruction( - /* [in] */ BSTR target, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMProcessingInstruction **pi) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createAttribute( - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMAttribute **attribute) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createEntityReference( - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMEntityReference **entityRef) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getElementsByTagName( - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMNodeList **resultList) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createNode( - /* [in] */ VARIANT Type, - /* [in] */ BSTR name, - /* [in] */ BSTR namespaceURI, - /* [out][retval] */ IXMLDOMNode **node) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE nodeFromID( - /* [in] */ BSTR idString, - /* [out][retval] */ IXMLDOMNode **node) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE load( - /* [in] */ VARIANT xmlSource, - /* [retval][out] */ VARIANT_BOOL *isSuccessful) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_readyState( - /* [out][retval] */ long *value) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_parseError( - /* [out][retval] */ IXMLDOMParseError **errorObj) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_url( - /* [out][retval] */ BSTR *urlString) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_async( - /* [out][retval] */ VARIANT_BOOL *isAsync) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_async( - /* [in] */ VARIANT_BOOL isAsync) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE abort( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE loadXML( - /* [in] */ BSTR bstrXML, - /* [retval][out] */ VARIANT_BOOL *isSuccessful) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE save( - /* [in] */ VARIANT destination) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_validateOnParse( - /* [out][retval] */ VARIANT_BOOL *isValidating) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_validateOnParse( - /* [in] */ VARIANT_BOOL isValidating) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_resolveExternals( - /* [out][retval] */ VARIANT_BOOL *isResolving) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_resolveExternals( - /* [in] */ VARIANT_BOOL isResolving) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_preserveWhiteSpace( - /* [out][retval] */ VARIANT_BOOL *isPreserving) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_preserveWhiteSpace( - /* [in] */ VARIANT_BOOL isPreserving) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_onreadystatechange( - /* [in] */ VARIANT readystatechangeSink) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ondataavailable( - /* [in] */ VARIANT ondataavailableSink) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ontransformnode( - /* [in] */ VARIANT ontransformnodeSink) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMDocumentVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMDocument * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMDocument * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMDocument * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMDocument * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMDocument * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMDocument * 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 )( - IXMLDOMDocument * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMDocument * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMDocument * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMDocument * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMDocument * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMDocument * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMDocument * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMDocument * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMDocument * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMDocument * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMDocument * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMDocument * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMDocument * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_doctype )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMDocumentType **documentType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_implementation )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMImplementation **impl); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_documentElement )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMElement **DOMElement); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_documentElement )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMElement *DOMElement); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createElement )( - IXMLDOMDocument * This, - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMElement **element); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createDocumentFragment )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMDocumentFragment **docFrag); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createTextNode )( - IXMLDOMDocument * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMText **text); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createComment )( - IXMLDOMDocument * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMComment **comment); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createCDATASection )( - IXMLDOMDocument * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMCDATASection **cdata); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createProcessingInstruction )( - IXMLDOMDocument * This, - /* [in] */ BSTR target, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMProcessingInstruction **pi); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createAttribute )( - IXMLDOMDocument * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMAttribute **attribute); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createEntityReference )( - IXMLDOMDocument * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMEntityReference **entityRef); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getElementsByTagName )( - IXMLDOMDocument * This, - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createNode )( - IXMLDOMDocument * This, - /* [in] */ VARIANT Type, - /* [in] */ BSTR name, - /* [in] */ BSTR namespaceURI, - /* [out][retval] */ IXMLDOMNode **node); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *nodeFromID )( - IXMLDOMDocument * This, - /* [in] */ BSTR idString, - /* [out][retval] */ IXMLDOMNode **node); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *load )( - IXMLDOMDocument * This, - /* [in] */ VARIANT xmlSource, - /* [retval][out] */ VARIANT_BOOL *isSuccessful); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IXMLDOMDocument * This, - /* [out][retval] */ long *value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parseError )( - IXMLDOMDocument * This, - /* [out][retval] */ IXMLDOMParseError **errorObj); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_url )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *urlString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_async )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isAsync); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_async )( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isAsync); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *abort )( - IXMLDOMDocument * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *loadXML )( - IXMLDOMDocument * This, - /* [in] */ BSTR bstrXML, - /* [retval][out] */ VARIANT_BOOL *isSuccessful); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *save )( - IXMLDOMDocument * This, - /* [in] */ VARIANT destination); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_validateOnParse )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isValidating); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_validateOnParse )( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isValidating); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_resolveExternals )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isResolving); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_resolveExternals )( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isResolving); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_preserveWhiteSpace )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isPreserving); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_preserveWhiteSpace )( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isPreserving); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_onreadystatechange )( - IXMLDOMDocument * This, - /* [in] */ VARIANT readystatechangeSink); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ondataavailable )( - IXMLDOMDocument * This, - /* [in] */ VARIANT ondataavailableSink); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ontransformnode )( - IXMLDOMDocument * This, - /* [in] */ VARIANT ontransformnodeSink); - - END_INTERFACE - } IXMLDOMDocumentVtbl; - - interface IXMLDOMDocument - { - CONST_VTBL struct IXMLDOMDocumentVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMDocument_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMDocument_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMDocument_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMDocument_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMDocument_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMDocument_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMDocument_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMDocument_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMDocument_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMDocument_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMDocument_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMDocument_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMDocument_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMDocument_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMDocument_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMDocument_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMDocument_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMDocument_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMDocument_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMDocument_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMDocument_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMDocument_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMDocument_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMDocument_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMDocument_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMDocument_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMDocument_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMDocument_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMDocument_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMDocument_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMDocument_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMDocument_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMDocument_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMDocument_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMDocument_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMDocument_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMDocument_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMDocument_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMDocument_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMDocument_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMDocument_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMDocument_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMDocument_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXMLDOMDocument_get_doctype(This,documentType) \ - ( (This)->lpVtbl -> get_doctype(This,documentType) ) - -#define IXMLDOMDocument_get_implementation(This,impl) \ - ( (This)->lpVtbl -> get_implementation(This,impl) ) - -#define IXMLDOMDocument_get_documentElement(This,DOMElement) \ - ( (This)->lpVtbl -> get_documentElement(This,DOMElement) ) - -#define IXMLDOMDocument_putref_documentElement(This,DOMElement) \ - ( (This)->lpVtbl -> putref_documentElement(This,DOMElement) ) - -#define IXMLDOMDocument_createElement(This,tagName,element) \ - ( (This)->lpVtbl -> createElement(This,tagName,element) ) - -#define IXMLDOMDocument_createDocumentFragment(This,docFrag) \ - ( (This)->lpVtbl -> createDocumentFragment(This,docFrag) ) - -#define IXMLDOMDocument_createTextNode(This,data,text) \ - ( (This)->lpVtbl -> createTextNode(This,data,text) ) - -#define IXMLDOMDocument_createComment(This,data,comment) \ - ( (This)->lpVtbl -> createComment(This,data,comment) ) - -#define IXMLDOMDocument_createCDATASection(This,data,cdata) \ - ( (This)->lpVtbl -> createCDATASection(This,data,cdata) ) - -#define IXMLDOMDocument_createProcessingInstruction(This,target,data,pi) \ - ( (This)->lpVtbl -> createProcessingInstruction(This,target,data,pi) ) - -#define IXMLDOMDocument_createAttribute(This,name,attribute) \ - ( (This)->lpVtbl -> createAttribute(This,name,attribute) ) - -#define IXMLDOMDocument_createEntityReference(This,name,entityRef) \ - ( (This)->lpVtbl -> createEntityReference(This,name,entityRef) ) - -#define IXMLDOMDocument_getElementsByTagName(This,tagName,resultList) \ - ( (This)->lpVtbl -> getElementsByTagName(This,tagName,resultList) ) - -#define IXMLDOMDocument_createNode(This,Type,name,namespaceURI,node) \ - ( (This)->lpVtbl -> createNode(This,Type,name,namespaceURI,node) ) - -#define IXMLDOMDocument_nodeFromID(This,idString,node) \ - ( (This)->lpVtbl -> nodeFromID(This,idString,node) ) - -#define IXMLDOMDocument_load(This,xmlSource,isSuccessful) \ - ( (This)->lpVtbl -> load(This,xmlSource,isSuccessful) ) - -#define IXMLDOMDocument_get_readyState(This,value) \ - ( (This)->lpVtbl -> get_readyState(This,value) ) - -#define IXMLDOMDocument_get_parseError(This,errorObj) \ - ( (This)->lpVtbl -> get_parseError(This,errorObj) ) - -#define IXMLDOMDocument_get_url(This,urlString) \ - ( (This)->lpVtbl -> get_url(This,urlString) ) - -#define IXMLDOMDocument_get_async(This,isAsync) \ - ( (This)->lpVtbl -> get_async(This,isAsync) ) - -#define IXMLDOMDocument_put_async(This,isAsync) \ - ( (This)->lpVtbl -> put_async(This,isAsync) ) - -#define IXMLDOMDocument_abort(This) \ - ( (This)->lpVtbl -> abort(This) ) - -#define IXMLDOMDocument_loadXML(This,bstrXML,isSuccessful) \ - ( (This)->lpVtbl -> loadXML(This,bstrXML,isSuccessful) ) - -#define IXMLDOMDocument_save(This,destination) \ - ( (This)->lpVtbl -> save(This,destination) ) - -#define IXMLDOMDocument_get_validateOnParse(This,isValidating) \ - ( (This)->lpVtbl -> get_validateOnParse(This,isValidating) ) - -#define IXMLDOMDocument_put_validateOnParse(This,isValidating) \ - ( (This)->lpVtbl -> put_validateOnParse(This,isValidating) ) - -#define IXMLDOMDocument_get_resolveExternals(This,isResolving) \ - ( (This)->lpVtbl -> get_resolveExternals(This,isResolving) ) - -#define IXMLDOMDocument_put_resolveExternals(This,isResolving) \ - ( (This)->lpVtbl -> put_resolveExternals(This,isResolving) ) - -#define IXMLDOMDocument_get_preserveWhiteSpace(This,isPreserving) \ - ( (This)->lpVtbl -> get_preserveWhiteSpace(This,isPreserving) ) - -#define IXMLDOMDocument_put_preserveWhiteSpace(This,isPreserving) \ - ( (This)->lpVtbl -> put_preserveWhiteSpace(This,isPreserving) ) - -#define IXMLDOMDocument_put_onreadystatechange(This,readystatechangeSink) \ - ( (This)->lpVtbl -> put_onreadystatechange(This,readystatechangeSink) ) - -#define IXMLDOMDocument_put_ondataavailable(This,ondataavailableSink) \ - ( (This)->lpVtbl -> put_ondataavailable(This,ondataavailableSink) ) - -#define IXMLDOMDocument_put_ontransformnode(This,ontransformnodeSink) \ - ( (This)->lpVtbl -> put_ontransformnode(This,ontransformnodeSink) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMDocument_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMNodeList_INTERFACE_DEFINED__ -#define __IXMLDOMNodeList_INTERFACE_DEFINED__ - -/* interface IXMLDOMNodeList */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMNodeList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF82-7B36-11d2-B20E-00C04F983E60") - IXMLDOMNodeList : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_item( - /* [in] */ long index, - /* [retval][out] */ IXMLDOMNode **listItem) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_length( - /* [retval][out] */ long *listLength) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE nextNode( - /* [retval][out] */ IXMLDOMNode **nextItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE reset( void) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__newEnum( - /* [out][retval] */ IUnknown **ppUnk) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMNodeListVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMNodeList * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMNodeList * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMNodeList * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMNodeList * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMNodeList * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMNodeList * 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 )( - IXMLDOMNodeList * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_item )( - IXMLDOMNodeList * This, - /* [in] */ long index, - /* [retval][out] */ IXMLDOMNode **listItem); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMNodeList * This, - /* [retval][out] */ long *listLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *nextNode )( - IXMLDOMNodeList * This, - /* [retval][out] */ IXMLDOMNode **nextItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *reset )( - IXMLDOMNodeList * This); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__newEnum )( - IXMLDOMNodeList * This, - /* [out][retval] */ IUnknown **ppUnk); - - END_INTERFACE - } IXMLDOMNodeListVtbl; - - interface IXMLDOMNodeList - { - CONST_VTBL struct IXMLDOMNodeListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMNodeList_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMNodeList_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMNodeList_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMNodeList_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMNodeList_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMNodeList_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMNodeList_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMNodeList_get_item(This,index,listItem) \ - ( (This)->lpVtbl -> get_item(This,index,listItem) ) - -#define IXMLDOMNodeList_get_length(This,listLength) \ - ( (This)->lpVtbl -> get_length(This,listLength) ) - -#define IXMLDOMNodeList_nextNode(This,nextItem) \ - ( (This)->lpVtbl -> nextNode(This,nextItem) ) - -#define IXMLDOMNodeList_reset(This) \ - ( (This)->lpVtbl -> reset(This) ) - -#define IXMLDOMNodeList_get__newEnum(This,ppUnk) \ - ( (This)->lpVtbl -> get__newEnum(This,ppUnk) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMNodeList_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMNamedNodeMap_INTERFACE_DEFINED__ -#define __IXMLDOMNamedNodeMap_INTERFACE_DEFINED__ - -/* interface IXMLDOMNamedNodeMap */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMNamedNodeMap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF83-7B36-11d2-B20E-00C04F983E60") - IXMLDOMNamedNodeMap : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getNamedItem( - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMNode **namedItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setNamedItem( - /* [in] */ IXMLDOMNode *newItem, - /* [retval][out] */ IXMLDOMNode **nameItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeNamedItem( - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMNode **namedItem) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_item( - /* [in] */ long index, - /* [retval][out] */ IXMLDOMNode **listItem) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_length( - /* [retval][out] */ long *listLength) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getQualifiedItem( - /* [in] */ BSTR baseName, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **qualifiedItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeQualifiedItem( - /* [in] */ BSTR baseName, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **qualifiedItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE nextNode( - /* [retval][out] */ IXMLDOMNode **nextItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE reset( void) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__newEnum( - /* [out][retval] */ IUnknown **ppUnk) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMNamedNodeMapVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMNamedNodeMap * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMNamedNodeMap * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMNamedNodeMap * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMNamedNodeMap * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMNamedNodeMap * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMNamedNodeMap * 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 )( - IXMLDOMNamedNodeMap * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getNamedItem )( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMNode **namedItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setNamedItem )( - IXMLDOMNamedNodeMap * This, - /* [in] */ IXMLDOMNode *newItem, - /* [retval][out] */ IXMLDOMNode **nameItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeNamedItem )( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMNode **namedItem); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_item )( - IXMLDOMNamedNodeMap * This, - /* [in] */ long index, - /* [retval][out] */ IXMLDOMNode **listItem); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMNamedNodeMap * This, - /* [retval][out] */ long *listLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getQualifiedItem )( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR baseName, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **qualifiedItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeQualifiedItem )( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR baseName, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **qualifiedItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *nextNode )( - IXMLDOMNamedNodeMap * This, - /* [retval][out] */ IXMLDOMNode **nextItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *reset )( - IXMLDOMNamedNodeMap * This); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__newEnum )( - IXMLDOMNamedNodeMap * This, - /* [out][retval] */ IUnknown **ppUnk); - - END_INTERFACE - } IXMLDOMNamedNodeMapVtbl; - - interface IXMLDOMNamedNodeMap - { - CONST_VTBL struct IXMLDOMNamedNodeMapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMNamedNodeMap_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMNamedNodeMap_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMNamedNodeMap_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMNamedNodeMap_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMNamedNodeMap_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMNamedNodeMap_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMNamedNodeMap_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMNamedNodeMap_getNamedItem(This,name,namedItem) \ - ( (This)->lpVtbl -> getNamedItem(This,name,namedItem) ) - -#define IXMLDOMNamedNodeMap_setNamedItem(This,newItem,nameItem) \ - ( (This)->lpVtbl -> setNamedItem(This,newItem,nameItem) ) - -#define IXMLDOMNamedNodeMap_removeNamedItem(This,name,namedItem) \ - ( (This)->lpVtbl -> removeNamedItem(This,name,namedItem) ) - -#define IXMLDOMNamedNodeMap_get_item(This,index,listItem) \ - ( (This)->lpVtbl -> get_item(This,index,listItem) ) - -#define IXMLDOMNamedNodeMap_get_length(This,listLength) \ - ( (This)->lpVtbl -> get_length(This,listLength) ) - -#define IXMLDOMNamedNodeMap_getQualifiedItem(This,baseName,namespaceURI,qualifiedItem) \ - ( (This)->lpVtbl -> getQualifiedItem(This,baseName,namespaceURI,qualifiedItem) ) - -#define IXMLDOMNamedNodeMap_removeQualifiedItem(This,baseName,namespaceURI,qualifiedItem) \ - ( (This)->lpVtbl -> removeQualifiedItem(This,baseName,namespaceURI,qualifiedItem) ) - -#define IXMLDOMNamedNodeMap_nextNode(This,nextItem) \ - ( (This)->lpVtbl -> nextNode(This,nextItem) ) - -#define IXMLDOMNamedNodeMap_reset(This) \ - ( (This)->lpVtbl -> reset(This) ) - -#define IXMLDOMNamedNodeMap_get__newEnum(This,ppUnk) \ - ( (This)->lpVtbl -> get__newEnum(This,ppUnk) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMNamedNodeMap_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMCharacterData_INTERFACE_DEFINED__ -#define __IXMLDOMCharacterData_INTERFACE_DEFINED__ - -/* interface IXMLDOMCharacterData */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMCharacterData; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF84-7B36-11d2-B20E-00C04F983E60") - IXMLDOMCharacterData : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_data( - /* [retval][out] */ BSTR *data) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_data( - /* [in] */ BSTR data) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_length( - /* [retval][out] */ long *dataLength) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE substringData( - /* [in] */ long offset, - /* [in] */ long count, - /* [retval][out] */ BSTR *data) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE appendData( - /* [in] */ BSTR data) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE insertData( - /* [in] */ long offset, - /* [in] */ BSTR data) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE deleteData( - /* [in] */ long offset, - /* [in] */ long count) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE replaceData( - /* [in] */ long offset, - /* [in] */ long count, - /* [in] */ BSTR data) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMCharacterDataVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMCharacterData * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMCharacterData * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMCharacterData * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMCharacterData * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMCharacterData * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMCharacterData * 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 )( - IXMLDOMCharacterData * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMCharacterData * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMCharacterData * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMCharacterData * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMCharacterData * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMCharacterData * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMCharacterData * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMCharacterData * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMCharacterData * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMCharacterData * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMCharacterData * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMCharacterData * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMCharacterData * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_data )( - IXMLDOMCharacterData * This, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_data )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR data); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMCharacterData * This, - /* [retval][out] */ long *dataLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *substringData )( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendData )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertData )( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *deleteData )( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ long count); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceData )( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [in] */ BSTR data); - - END_INTERFACE - } IXMLDOMCharacterDataVtbl; - - interface IXMLDOMCharacterData - { - CONST_VTBL struct IXMLDOMCharacterDataVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMCharacterData_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMCharacterData_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMCharacterData_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMCharacterData_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMCharacterData_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMCharacterData_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMCharacterData_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMCharacterData_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMCharacterData_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMCharacterData_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMCharacterData_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMCharacterData_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMCharacterData_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMCharacterData_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMCharacterData_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMCharacterData_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMCharacterData_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMCharacterData_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMCharacterData_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMCharacterData_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMCharacterData_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMCharacterData_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMCharacterData_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMCharacterData_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMCharacterData_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMCharacterData_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMCharacterData_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMCharacterData_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMCharacterData_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMCharacterData_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMCharacterData_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMCharacterData_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMCharacterData_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMCharacterData_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMCharacterData_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMCharacterData_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMCharacterData_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMCharacterData_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMCharacterData_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMCharacterData_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMCharacterData_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMCharacterData_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMCharacterData_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXMLDOMCharacterData_get_data(This,data) \ - ( (This)->lpVtbl -> get_data(This,data) ) - -#define IXMLDOMCharacterData_put_data(This,data) \ - ( (This)->lpVtbl -> put_data(This,data) ) - -#define IXMLDOMCharacterData_get_length(This,dataLength) \ - ( (This)->lpVtbl -> get_length(This,dataLength) ) - -#define IXMLDOMCharacterData_substringData(This,offset,count,data) \ - ( (This)->lpVtbl -> substringData(This,offset,count,data) ) - -#define IXMLDOMCharacterData_appendData(This,data) \ - ( (This)->lpVtbl -> appendData(This,data) ) - -#define IXMLDOMCharacterData_insertData(This,offset,data) \ - ( (This)->lpVtbl -> insertData(This,offset,data) ) - -#define IXMLDOMCharacterData_deleteData(This,offset,count) \ - ( (This)->lpVtbl -> deleteData(This,offset,count) ) - -#define IXMLDOMCharacterData_replaceData(This,offset,count,data) \ - ( (This)->lpVtbl -> replaceData(This,offset,count,data) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMCharacterData_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMAttribute_INTERFACE_DEFINED__ -#define __IXMLDOMAttribute_INTERFACE_DEFINED__ - -/* interface IXMLDOMAttribute */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMAttribute; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF85-7B36-11d2-B20E-00C04F983E60") - IXMLDOMAttribute : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_name( - /* [retval][out] */ BSTR *attributeName) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_value( - /* [retval][out] */ VARIANT *attributeValue) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_value( - /* [in] */ VARIANT attributeValue) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMAttributeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMAttribute * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMAttribute * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMAttribute * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMAttribute * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMAttribute * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMAttribute * 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 )( - IXMLDOMAttribute * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMAttribute * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMAttribute * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMAttribute * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMAttribute * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMAttribute * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMAttribute * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMAttribute * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMAttribute * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMAttribute * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMAttribute * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMAttribute * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMAttribute * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMAttribute * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMAttribute * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMAttribute * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMAttribute * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( - IXMLDOMAttribute * This, - /* [retval][out] */ BSTR *attributeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( - IXMLDOMAttribute * This, - /* [retval][out] */ VARIANT *attributeValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_value )( - IXMLDOMAttribute * This, - /* [in] */ VARIANT attributeValue); - - END_INTERFACE - } IXMLDOMAttributeVtbl; - - interface IXMLDOMAttribute - { - CONST_VTBL struct IXMLDOMAttributeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMAttribute_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMAttribute_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMAttribute_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMAttribute_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMAttribute_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMAttribute_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMAttribute_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMAttribute_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMAttribute_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMAttribute_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMAttribute_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMAttribute_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMAttribute_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMAttribute_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMAttribute_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMAttribute_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMAttribute_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMAttribute_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMAttribute_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMAttribute_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMAttribute_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMAttribute_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMAttribute_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMAttribute_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMAttribute_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMAttribute_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMAttribute_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMAttribute_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMAttribute_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMAttribute_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMAttribute_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMAttribute_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMAttribute_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMAttribute_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMAttribute_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMAttribute_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMAttribute_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMAttribute_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMAttribute_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMAttribute_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMAttribute_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMAttribute_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMAttribute_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXMLDOMAttribute_get_name(This,attributeName) \ - ( (This)->lpVtbl -> get_name(This,attributeName) ) - -#define IXMLDOMAttribute_get_value(This,attributeValue) \ - ( (This)->lpVtbl -> get_value(This,attributeValue) ) - -#define IXMLDOMAttribute_put_value(This,attributeValue) \ - ( (This)->lpVtbl -> put_value(This,attributeValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMAttribute_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMElement_INTERFACE_DEFINED__ -#define __IXMLDOMElement_INTERFACE_DEFINED__ - -/* interface IXMLDOMElement */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMElement; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF86-7B36-11d2-B20E-00C04F983E60") - IXMLDOMElement : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_tagName( - /* [retval][out] */ BSTR *tagName) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getAttribute( - /* [in] */ BSTR name, - /* [retval][out] */ VARIANT *value) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setAttribute( - /* [in] */ BSTR name, - /* [in] */ VARIANT value) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeAttribute( - /* [in] */ BSTR name) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getAttributeNode( - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMAttribute **attributeNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setAttributeNode( - /* [in] */ IXMLDOMAttribute *DOMAttribute, - /* [retval][out] */ IXMLDOMAttribute **attributeNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeAttributeNode( - /* [in] */ IXMLDOMAttribute *DOMAttribute, - /* [retval][out] */ IXMLDOMAttribute **attributeNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getElementsByTagName( - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMNodeList **resultList) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE normalize( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMElementVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMElement * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMElement * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMElement * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMElement * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMElement * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMElement * 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 )( - IXMLDOMElement * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMElement * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMElement * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMElement * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMElement * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMElement * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMElement * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMElement * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMElement * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMElement * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMElement * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMElement * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMElement * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMElement * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMElement * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMElement * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMElement * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_tagName )( - IXMLDOMElement * This, - /* [retval][out] */ BSTR *tagName); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getAttribute )( - IXMLDOMElement * This, - /* [in] */ BSTR name, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setAttribute )( - IXMLDOMElement * This, - /* [in] */ BSTR name, - /* [in] */ VARIANT value); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeAttribute )( - IXMLDOMElement * This, - /* [in] */ BSTR name); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getAttributeNode )( - IXMLDOMElement * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMAttribute **attributeNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setAttributeNode )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMAttribute *DOMAttribute, - /* [retval][out] */ IXMLDOMAttribute **attributeNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeAttributeNode )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMAttribute *DOMAttribute, - /* [retval][out] */ IXMLDOMAttribute **attributeNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getElementsByTagName )( - IXMLDOMElement * This, - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *normalize )( - IXMLDOMElement * This); - - END_INTERFACE - } IXMLDOMElementVtbl; - - interface IXMLDOMElement - { - CONST_VTBL struct IXMLDOMElementVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMElement_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMElement_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMElement_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMElement_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMElement_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMElement_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMElement_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMElement_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMElement_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMElement_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMElement_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMElement_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMElement_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMElement_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMElement_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMElement_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMElement_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMElement_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMElement_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMElement_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMElement_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMElement_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMElement_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMElement_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMElement_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMElement_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMElement_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMElement_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMElement_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMElement_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMElement_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMElement_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMElement_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMElement_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMElement_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMElement_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMElement_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMElement_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMElement_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMElement_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXMLDOMElement_get_tagName(This,tagName) \ - ( (This)->lpVtbl -> get_tagName(This,tagName) ) - -#define IXMLDOMElement_getAttribute(This,name,value) \ - ( (This)->lpVtbl -> getAttribute(This,name,value) ) - -#define IXMLDOMElement_setAttribute(This,name,value) \ - ( (This)->lpVtbl -> setAttribute(This,name,value) ) - -#define IXMLDOMElement_removeAttribute(This,name) \ - ( (This)->lpVtbl -> removeAttribute(This,name) ) - -#define IXMLDOMElement_getAttributeNode(This,name,attributeNode) \ - ( (This)->lpVtbl -> getAttributeNode(This,name,attributeNode) ) - -#define IXMLDOMElement_setAttributeNode(This,DOMAttribute,attributeNode) \ - ( (This)->lpVtbl -> setAttributeNode(This,DOMAttribute,attributeNode) ) - -#define IXMLDOMElement_removeAttributeNode(This,DOMAttribute,attributeNode) \ - ( (This)->lpVtbl -> removeAttributeNode(This,DOMAttribute,attributeNode) ) - -#define IXMLDOMElement_getElementsByTagName(This,tagName,resultList) \ - ( (This)->lpVtbl -> getElementsByTagName(This,tagName,resultList) ) - -#define IXMLDOMElement_normalize(This) \ - ( (This)->lpVtbl -> normalize(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMElement_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMText_INTERFACE_DEFINED__ -#define __IXMLDOMText_INTERFACE_DEFINED__ - -/* interface IXMLDOMText */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMText; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF87-7B36-11d2-B20E-00C04F983E60") - IXMLDOMText : public IXMLDOMCharacterData - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE splitText( - /* [in] */ long offset, - /* [retval][out] */ IXMLDOMText **rightHandTextNode) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMTextVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMText * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMText * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMText * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMText * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMText * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMText * 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 )( - IXMLDOMText * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMText * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMText * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMText * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMText * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMText * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMText * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMText * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMText * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMText * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMText * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMText * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMText * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMText * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMText * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMText * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMText * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_data )( - IXMLDOMText * This, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_data )( - IXMLDOMText * This, - /* [in] */ BSTR data); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMText * This, - /* [retval][out] */ long *dataLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *substringData )( - IXMLDOMText * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendData )( - IXMLDOMText * This, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertData )( - IXMLDOMText * This, - /* [in] */ long offset, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *deleteData )( - IXMLDOMText * This, - /* [in] */ long offset, - /* [in] */ long count); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceData )( - IXMLDOMText * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *splitText )( - IXMLDOMText * This, - /* [in] */ long offset, - /* [retval][out] */ IXMLDOMText **rightHandTextNode); - - END_INTERFACE - } IXMLDOMTextVtbl; - - interface IXMLDOMText - { - CONST_VTBL struct IXMLDOMTextVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMText_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMText_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMText_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMText_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMText_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMText_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMText_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMText_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMText_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMText_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMText_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMText_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMText_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMText_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMText_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMText_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMText_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMText_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMText_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMText_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMText_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMText_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMText_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMText_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMText_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMText_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMText_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMText_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMText_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMText_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMText_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMText_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMText_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMText_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMText_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMText_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMText_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMText_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMText_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMText_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMText_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMText_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMText_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXMLDOMText_get_data(This,data) \ - ( (This)->lpVtbl -> get_data(This,data) ) - -#define IXMLDOMText_put_data(This,data) \ - ( (This)->lpVtbl -> put_data(This,data) ) - -#define IXMLDOMText_get_length(This,dataLength) \ - ( (This)->lpVtbl -> get_length(This,dataLength) ) - -#define IXMLDOMText_substringData(This,offset,count,data) \ - ( (This)->lpVtbl -> substringData(This,offset,count,data) ) - -#define IXMLDOMText_appendData(This,data) \ - ( (This)->lpVtbl -> appendData(This,data) ) - -#define IXMLDOMText_insertData(This,offset,data) \ - ( (This)->lpVtbl -> insertData(This,offset,data) ) - -#define IXMLDOMText_deleteData(This,offset,count) \ - ( (This)->lpVtbl -> deleteData(This,offset,count) ) - -#define IXMLDOMText_replaceData(This,offset,count,data) \ - ( (This)->lpVtbl -> replaceData(This,offset,count,data) ) - - -#define IXMLDOMText_splitText(This,offset,rightHandTextNode) \ - ( (This)->lpVtbl -> splitText(This,offset,rightHandTextNode) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMText_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMComment_INTERFACE_DEFINED__ -#define __IXMLDOMComment_INTERFACE_DEFINED__ - -/* interface IXMLDOMComment */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMComment; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF88-7B36-11d2-B20E-00C04F983E60") - IXMLDOMComment : public IXMLDOMCharacterData - { - public: - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMCommentVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMComment * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMComment * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMComment * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMComment * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMComment * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMComment * 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 )( - IXMLDOMComment * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMComment * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMComment * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMComment * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMComment * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMComment * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMComment * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMComment * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMComment * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMComment * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMComment * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMComment * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMComment * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMComment * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMComment * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMComment * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMComment * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_data )( - IXMLDOMComment * This, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_data )( - IXMLDOMComment * This, - /* [in] */ BSTR data); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMComment * This, - /* [retval][out] */ long *dataLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *substringData )( - IXMLDOMComment * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendData )( - IXMLDOMComment * This, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertData )( - IXMLDOMComment * This, - /* [in] */ long offset, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *deleteData )( - IXMLDOMComment * This, - /* [in] */ long offset, - /* [in] */ long count); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceData )( - IXMLDOMComment * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [in] */ BSTR data); - - END_INTERFACE - } IXMLDOMCommentVtbl; - - interface IXMLDOMComment - { - CONST_VTBL struct IXMLDOMCommentVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMComment_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMComment_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMComment_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMComment_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMComment_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMComment_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMComment_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMComment_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMComment_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMComment_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMComment_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMComment_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMComment_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMComment_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMComment_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMComment_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMComment_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMComment_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMComment_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMComment_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMComment_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMComment_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMComment_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMComment_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMComment_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMComment_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMComment_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMComment_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMComment_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMComment_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMComment_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMComment_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMComment_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMComment_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMComment_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMComment_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMComment_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMComment_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMComment_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMComment_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMComment_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMComment_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMComment_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXMLDOMComment_get_data(This,data) \ - ( (This)->lpVtbl -> get_data(This,data) ) - -#define IXMLDOMComment_put_data(This,data) \ - ( (This)->lpVtbl -> put_data(This,data) ) - -#define IXMLDOMComment_get_length(This,dataLength) \ - ( (This)->lpVtbl -> get_length(This,dataLength) ) - -#define IXMLDOMComment_substringData(This,offset,count,data) \ - ( (This)->lpVtbl -> substringData(This,offset,count,data) ) - -#define IXMLDOMComment_appendData(This,data) \ - ( (This)->lpVtbl -> appendData(This,data) ) - -#define IXMLDOMComment_insertData(This,offset,data) \ - ( (This)->lpVtbl -> insertData(This,offset,data) ) - -#define IXMLDOMComment_deleteData(This,offset,count) \ - ( (This)->lpVtbl -> deleteData(This,offset,count) ) - -#define IXMLDOMComment_replaceData(This,offset,count,data) \ - ( (This)->lpVtbl -> replaceData(This,offset,count,data) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMComment_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__ -#define __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__ - -/* interface IXMLDOMProcessingInstruction */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMProcessingInstruction; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF89-7B36-11d2-B20E-00C04F983E60") - IXMLDOMProcessingInstruction : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_target( - /* [retval][out] */ BSTR *name) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_data( - /* [retval][out] */ BSTR *value) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_data( - /* [in] */ BSTR value) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMProcessingInstructionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMProcessingInstruction * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMProcessingInstruction * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMProcessingInstruction * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMProcessingInstruction * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMProcessingInstruction * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMProcessingInstruction * 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 )( - IXMLDOMProcessingInstruction * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMProcessingInstruction * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMProcessingInstruction * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMProcessingInstruction * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMProcessingInstruction * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMProcessingInstruction * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMProcessingInstruction * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMProcessingInstruction * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_data )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ BSTR *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_data )( - IXMLDOMProcessingInstruction * This, - /* [in] */ BSTR value); - - END_INTERFACE - } IXMLDOMProcessingInstructionVtbl; - - interface IXMLDOMProcessingInstruction - { - CONST_VTBL struct IXMLDOMProcessingInstructionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMProcessingInstruction_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMProcessingInstruction_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMProcessingInstruction_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMProcessingInstruction_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMProcessingInstruction_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMProcessingInstruction_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMProcessingInstruction_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMProcessingInstruction_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMProcessingInstruction_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMProcessingInstruction_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMProcessingInstruction_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMProcessingInstruction_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMProcessingInstruction_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMProcessingInstruction_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMProcessingInstruction_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMProcessingInstruction_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMProcessingInstruction_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMProcessingInstruction_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMProcessingInstruction_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMProcessingInstruction_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMProcessingInstruction_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMProcessingInstruction_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMProcessingInstruction_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMProcessingInstruction_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMProcessingInstruction_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMProcessingInstruction_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMProcessingInstruction_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMProcessingInstruction_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMProcessingInstruction_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMProcessingInstruction_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMProcessingInstruction_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMProcessingInstruction_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMProcessingInstruction_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMProcessingInstruction_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMProcessingInstruction_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMProcessingInstruction_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMProcessingInstruction_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMProcessingInstruction_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMProcessingInstruction_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMProcessingInstruction_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMProcessingInstruction_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMProcessingInstruction_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMProcessingInstruction_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXMLDOMProcessingInstruction_get_target(This,name) \ - ( (This)->lpVtbl -> get_target(This,name) ) - -#define IXMLDOMProcessingInstruction_get_data(This,value) \ - ( (This)->lpVtbl -> get_data(This,value) ) - -#define IXMLDOMProcessingInstruction_put_data(This,value) \ - ( (This)->lpVtbl -> put_data(This,value) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMCDATASection_INTERFACE_DEFINED__ -#define __IXMLDOMCDATASection_INTERFACE_DEFINED__ - -/* interface IXMLDOMCDATASection */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMCDATASection; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8A-7B36-11d2-B20E-00C04F983E60") - IXMLDOMCDATASection : public IXMLDOMText - { - public: - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMCDATASectionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMCDATASection * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMCDATASection * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMCDATASection * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMCDATASection * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMCDATASection * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMCDATASection * 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 )( - IXMLDOMCDATASection * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMCDATASection * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMCDATASection * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMCDATASection * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMCDATASection * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMCDATASection * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMCDATASection * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMCDATASection * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMCDATASection * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMCDATASection * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMCDATASection * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMCDATASection * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMCDATASection * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_data )( - IXMLDOMCDATASection * This, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_data )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR data); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMCDATASection * This, - /* [retval][out] */ long *dataLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *substringData )( - IXMLDOMCDATASection * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendData )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertData )( - IXMLDOMCDATASection * This, - /* [in] */ long offset, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *deleteData )( - IXMLDOMCDATASection * This, - /* [in] */ long offset, - /* [in] */ long count); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceData )( - IXMLDOMCDATASection * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *splitText )( - IXMLDOMCDATASection * This, - /* [in] */ long offset, - /* [retval][out] */ IXMLDOMText **rightHandTextNode); - - END_INTERFACE - } IXMLDOMCDATASectionVtbl; - - interface IXMLDOMCDATASection - { - CONST_VTBL struct IXMLDOMCDATASectionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMCDATASection_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMCDATASection_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMCDATASection_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMCDATASection_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMCDATASection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMCDATASection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMCDATASection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMCDATASection_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMCDATASection_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMCDATASection_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMCDATASection_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMCDATASection_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMCDATASection_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMCDATASection_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMCDATASection_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMCDATASection_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMCDATASection_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMCDATASection_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMCDATASection_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMCDATASection_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMCDATASection_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMCDATASection_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMCDATASection_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMCDATASection_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMCDATASection_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMCDATASection_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMCDATASection_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMCDATASection_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMCDATASection_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMCDATASection_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMCDATASection_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMCDATASection_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMCDATASection_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMCDATASection_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMCDATASection_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMCDATASection_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMCDATASection_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMCDATASection_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMCDATASection_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMCDATASection_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMCDATASection_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMCDATASection_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMCDATASection_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXMLDOMCDATASection_get_data(This,data) \ - ( (This)->lpVtbl -> get_data(This,data) ) - -#define IXMLDOMCDATASection_put_data(This,data) \ - ( (This)->lpVtbl -> put_data(This,data) ) - -#define IXMLDOMCDATASection_get_length(This,dataLength) \ - ( (This)->lpVtbl -> get_length(This,dataLength) ) - -#define IXMLDOMCDATASection_substringData(This,offset,count,data) \ - ( (This)->lpVtbl -> substringData(This,offset,count,data) ) - -#define IXMLDOMCDATASection_appendData(This,data) \ - ( (This)->lpVtbl -> appendData(This,data) ) - -#define IXMLDOMCDATASection_insertData(This,offset,data) \ - ( (This)->lpVtbl -> insertData(This,offset,data) ) - -#define IXMLDOMCDATASection_deleteData(This,offset,count) \ - ( (This)->lpVtbl -> deleteData(This,offset,count) ) - -#define IXMLDOMCDATASection_replaceData(This,offset,count,data) \ - ( (This)->lpVtbl -> replaceData(This,offset,count,data) ) - - -#define IXMLDOMCDATASection_splitText(This,offset,rightHandTextNode) \ - ( (This)->lpVtbl -> splitText(This,offset,rightHandTextNode) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMCDATASection_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMDocumentType_INTERFACE_DEFINED__ -#define __IXMLDOMDocumentType_INTERFACE_DEFINED__ - -/* interface IXMLDOMDocumentType */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMDocumentType; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8B-7B36-11d2-B20E-00C04F983E60") - IXMLDOMDocumentType : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_name( - /* [retval][out] */ BSTR *rootName) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_entities( - /* [retval][out] */ IXMLDOMNamedNodeMap **entityMap) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_notations( - /* [retval][out] */ IXMLDOMNamedNodeMap **notationMap) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMDocumentTypeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMDocumentType * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMDocumentType * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMDocumentType * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMDocumentType * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMDocumentType * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMDocumentType * 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 )( - IXMLDOMDocumentType * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMDocumentType * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMDocumentType * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMDocumentType * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMDocumentType * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMDocumentType * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMDocumentType * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMDocumentType * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMDocumentType * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMDocumentType * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMDocumentType * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMDocumentType * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMDocumentType * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMDocumentType * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMDocumentType * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMDocumentType * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMDocumentType * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( - IXMLDOMDocumentType * This, - /* [retval][out] */ BSTR *rootName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_entities )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **entityMap); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notations )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **notationMap); - - END_INTERFACE - } IXMLDOMDocumentTypeVtbl; - - interface IXMLDOMDocumentType - { - CONST_VTBL struct IXMLDOMDocumentTypeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMDocumentType_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMDocumentType_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMDocumentType_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMDocumentType_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMDocumentType_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMDocumentType_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMDocumentType_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMDocumentType_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMDocumentType_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMDocumentType_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMDocumentType_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMDocumentType_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMDocumentType_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMDocumentType_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMDocumentType_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMDocumentType_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMDocumentType_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMDocumentType_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMDocumentType_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMDocumentType_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMDocumentType_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMDocumentType_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMDocumentType_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMDocumentType_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMDocumentType_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMDocumentType_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMDocumentType_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMDocumentType_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMDocumentType_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMDocumentType_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMDocumentType_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMDocumentType_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMDocumentType_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMDocumentType_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMDocumentType_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMDocumentType_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMDocumentType_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMDocumentType_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMDocumentType_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMDocumentType_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMDocumentType_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMDocumentType_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMDocumentType_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXMLDOMDocumentType_get_name(This,rootName) \ - ( (This)->lpVtbl -> get_name(This,rootName) ) - -#define IXMLDOMDocumentType_get_entities(This,entityMap) \ - ( (This)->lpVtbl -> get_entities(This,entityMap) ) - -#define IXMLDOMDocumentType_get_notations(This,notationMap) \ - ( (This)->lpVtbl -> get_notations(This,notationMap) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMDocumentType_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMNotation_INTERFACE_DEFINED__ -#define __IXMLDOMNotation_INTERFACE_DEFINED__ - -/* interface IXMLDOMNotation */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMNotation; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8C-7B36-11d2-B20E-00C04F983E60") - IXMLDOMNotation : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_publicId( - /* [retval][out] */ VARIANT *publicID) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_systemId( - /* [retval][out] */ VARIANT *systemID) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMNotationVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMNotation * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMNotation * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMNotation * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMNotation * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMNotation * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMNotation * 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 )( - IXMLDOMNotation * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMNotation * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMNotation * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMNotation * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMNotation * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMNotation * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMNotation * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMNotation * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMNotation * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMNotation * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMNotation * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMNotation * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMNotation * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMNotation * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_publicId )( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT *publicID); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemId )( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT *systemID); - - END_INTERFACE - } IXMLDOMNotationVtbl; - - interface IXMLDOMNotation - { - CONST_VTBL struct IXMLDOMNotationVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMNotation_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMNotation_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMNotation_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMNotation_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMNotation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMNotation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMNotation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMNotation_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMNotation_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMNotation_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMNotation_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMNotation_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMNotation_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMNotation_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMNotation_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMNotation_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMNotation_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMNotation_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMNotation_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMNotation_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMNotation_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMNotation_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMNotation_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMNotation_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMNotation_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMNotation_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMNotation_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMNotation_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMNotation_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMNotation_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMNotation_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMNotation_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMNotation_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMNotation_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMNotation_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMNotation_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMNotation_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMNotation_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMNotation_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMNotation_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMNotation_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMNotation_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMNotation_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXMLDOMNotation_get_publicId(This,publicID) \ - ( (This)->lpVtbl -> get_publicId(This,publicID) ) - -#define IXMLDOMNotation_get_systemId(This,systemID) \ - ( (This)->lpVtbl -> get_systemId(This,systemID) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMNotation_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMEntity_INTERFACE_DEFINED__ -#define __IXMLDOMEntity_INTERFACE_DEFINED__ - -/* interface IXMLDOMEntity */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMEntity; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8D-7B36-11d2-B20E-00C04F983E60") - IXMLDOMEntity : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_publicId( - /* [retval][out] */ VARIANT *publicID) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_systemId( - /* [retval][out] */ VARIANT *systemID) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_notationName( - /* [retval][out] */ BSTR *name) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMEntityVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMEntity * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMEntity * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMEntity * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMEntity * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMEntity * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMEntity * 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 )( - IXMLDOMEntity * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMEntity * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMEntity * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMEntity * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMEntity * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMEntity * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMEntity * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMEntity * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMEntity * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMEntity * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMEntity * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMEntity * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMEntity * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMEntity * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_publicId )( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT *publicID); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemId )( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT *systemID); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notationName )( - IXMLDOMEntity * This, - /* [retval][out] */ BSTR *name); - - END_INTERFACE - } IXMLDOMEntityVtbl; - - interface IXMLDOMEntity - { - CONST_VTBL struct IXMLDOMEntityVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMEntity_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMEntity_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMEntity_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMEntity_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMEntity_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMEntity_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMEntity_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMEntity_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMEntity_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMEntity_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMEntity_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMEntity_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMEntity_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMEntity_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMEntity_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMEntity_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMEntity_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMEntity_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMEntity_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMEntity_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMEntity_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMEntity_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMEntity_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMEntity_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMEntity_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMEntity_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMEntity_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMEntity_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMEntity_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMEntity_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMEntity_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMEntity_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMEntity_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMEntity_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMEntity_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMEntity_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMEntity_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMEntity_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMEntity_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMEntity_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMEntity_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMEntity_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMEntity_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXMLDOMEntity_get_publicId(This,publicID) \ - ( (This)->lpVtbl -> get_publicId(This,publicID) ) - -#define IXMLDOMEntity_get_systemId(This,systemID) \ - ( (This)->lpVtbl -> get_systemId(This,systemID) ) - -#define IXMLDOMEntity_get_notationName(This,name) \ - ( (This)->lpVtbl -> get_notationName(This,name) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMEntity_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMEntityReference_INTERFACE_DEFINED__ -#define __IXMLDOMEntityReference_INTERFACE_DEFINED__ - -/* interface IXMLDOMEntityReference */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMEntityReference; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8E-7B36-11d2-B20E-00C04F983E60") - IXMLDOMEntityReference : public IXMLDOMNode - { - public: - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMEntityReferenceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMEntityReference * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMEntityReference * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMEntityReference * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMEntityReference * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMEntityReference * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMEntityReference * 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 )( - IXMLDOMEntityReference * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMEntityReference * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMEntityReference * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMEntityReference * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMEntityReference * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMEntityReference * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMEntityReference * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMEntityReference * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMEntityReference * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMEntityReference * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMEntityReference * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMEntityReference * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMEntityReference * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMEntityReference * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMEntityReference * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMEntityReference * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMEntityReference * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - END_INTERFACE - } IXMLDOMEntityReferenceVtbl; - - interface IXMLDOMEntityReference - { - CONST_VTBL struct IXMLDOMEntityReferenceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMEntityReference_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMEntityReference_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMEntityReference_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMEntityReference_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMEntityReference_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMEntityReference_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMEntityReference_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMEntityReference_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXMLDOMEntityReference_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXMLDOMEntityReference_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXMLDOMEntityReference_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXMLDOMEntityReference_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXMLDOMEntityReference_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXMLDOMEntityReference_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXMLDOMEntityReference_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXMLDOMEntityReference_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXMLDOMEntityReference_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXMLDOMEntityReference_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXMLDOMEntityReference_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXMLDOMEntityReference_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXMLDOMEntityReference_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXMLDOMEntityReference_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXMLDOMEntityReference_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXMLDOMEntityReference_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXMLDOMEntityReference_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXMLDOMEntityReference_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXMLDOMEntityReference_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXMLDOMEntityReference_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXMLDOMEntityReference_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXMLDOMEntityReference_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXMLDOMEntityReference_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMEntityReference_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXMLDOMEntityReference_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXMLDOMEntityReference_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXMLDOMEntityReference_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXMLDOMEntityReference_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXMLDOMEntityReference_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXMLDOMEntityReference_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXMLDOMEntityReference_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXMLDOMEntityReference_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXMLDOMEntityReference_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXMLDOMEntityReference_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXMLDOMEntityReference_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMEntityReference_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMParseError_INTERFACE_DEFINED__ -#define __IXMLDOMParseError_INTERFACE_DEFINED__ - -/* interface IXMLDOMParseError */ -/* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMParseError; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3efaa426-272f-11d2-836f-0000f87a7782") - IXMLDOMParseError : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_errorCode( - /* [out][retval] */ long *errorCode) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_url( - /* [out][retval] */ BSTR *urlString) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_reason( - /* [out][retval] */ BSTR *reasonString) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_srcText( - /* [out][retval] */ BSTR *sourceString) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_line( - /* [out][retval] */ long *lineNumber) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_linepos( - /* [out][retval] */ long *linePosition) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_filepos( - /* [out][retval] */ long *filePosition) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDOMParseErrorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMParseError * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMParseError * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMParseError * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMParseError * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMParseError * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMParseError * 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 )( - IXMLDOMParseError * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )( - IXMLDOMParseError * This, - /* [out][retval] */ long *errorCode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_url )( - IXMLDOMParseError * This, - /* [out][retval] */ BSTR *urlString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reason )( - IXMLDOMParseError * This, - /* [out][retval] */ BSTR *reasonString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_srcText )( - IXMLDOMParseError * This, - /* [out][retval] */ BSTR *sourceString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_line )( - IXMLDOMParseError * This, - /* [out][retval] */ long *lineNumber); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_linepos )( - IXMLDOMParseError * This, - /* [out][retval] */ long *linePosition); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_filepos )( - IXMLDOMParseError * This, - /* [out][retval] */ long *filePosition); - - END_INTERFACE - } IXMLDOMParseErrorVtbl; - - interface IXMLDOMParseError - { - CONST_VTBL struct IXMLDOMParseErrorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMParseError_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDOMParseError_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDOMParseError_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDOMParseError_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDOMParseError_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDOMParseError_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDOMParseError_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDOMParseError_get_errorCode(This,errorCode) \ - ( (This)->lpVtbl -> get_errorCode(This,errorCode) ) - -#define IXMLDOMParseError_get_url(This,urlString) \ - ( (This)->lpVtbl -> get_url(This,urlString) ) - -#define IXMLDOMParseError_get_reason(This,reasonString) \ - ( (This)->lpVtbl -> get_reason(This,reasonString) ) - -#define IXMLDOMParseError_get_srcText(This,sourceString) \ - ( (This)->lpVtbl -> get_srcText(This,sourceString) ) - -#define IXMLDOMParseError_get_line(This,lineNumber) \ - ( (This)->lpVtbl -> get_line(This,lineNumber) ) - -#define IXMLDOMParseError_get_linepos(This,linePosition) \ - ( (This)->lpVtbl -> get_linepos(This,linePosition) ) - -#define IXMLDOMParseError_get_filepos(This,filePosition) \ - ( (This)->lpVtbl -> get_filepos(This,filePosition) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMParseError_INTERFACE_DEFINED__ */ - - -#ifndef __IXTLRuntime_INTERFACE_DEFINED__ -#define __IXTLRuntime_INTERFACE_DEFINED__ - -/* interface IXTLRuntime */ -/* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXTLRuntime; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3efaa425-272f-11d2-836f-0000f87a7782") - IXTLRuntime : public IXMLDOMNode - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE uniqueID( - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pID) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE depth( - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pDepth) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE childNumber( - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ancestorChildNumber( - /* [in] */ BSTR bstrNodeName, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE absoluteChildNumber( - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE formatIndex( - /* [in] */ long lIndex, - /* [in] */ BSTR bstrFormat, - /* [retval][out] */ BSTR *pbstrFormattedString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE formatNumber( - /* [in] */ double dblNumber, - /* [in] */ BSTR bstrFormat, - /* [retval][out] */ BSTR *pbstrFormattedString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE formatDate( - /* [in] */ VARIANT varDate, - /* [in] */ BSTR bstrFormat, - /* [optional][in] */ VARIANT varDestLocale, - /* [retval][out] */ BSTR *pbstrFormattedString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE formatTime( - /* [in] */ VARIANT varTime, - /* [in] */ BSTR bstrFormat, - /* [optional][in] */ VARIANT varDestLocale, - /* [retval][out] */ BSTR *pbstrFormattedString) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXTLRuntimeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXTLRuntime * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXTLRuntime * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXTLRuntime * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXTLRuntime * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXTLRuntime * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXTLRuntime * 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 )( - IXTLRuntime * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXTLRuntime * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXTLRuntime * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXTLRuntime * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXTLRuntime * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXTLRuntime * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMDocument **XMLDOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXTLRuntime * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXTLRuntime * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXTLRuntime * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXTLRuntime * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXTLRuntime * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXTLRuntime * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXTLRuntime * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXTLRuntime * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXTLRuntime * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXTLRuntime * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXTLRuntime * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *uniqueID )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pID); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *depth )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pDepth); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *childNumber )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ancestorChildNumber )( - IXTLRuntime * This, - /* [in] */ BSTR bstrNodeName, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *absoluteChildNumber )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *formatIndex )( - IXTLRuntime * This, - /* [in] */ long lIndex, - /* [in] */ BSTR bstrFormat, - /* [retval][out] */ BSTR *pbstrFormattedString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *formatNumber )( - IXTLRuntime * This, - /* [in] */ double dblNumber, - /* [in] */ BSTR bstrFormat, - /* [retval][out] */ BSTR *pbstrFormattedString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *formatDate )( - IXTLRuntime * This, - /* [in] */ VARIANT varDate, - /* [in] */ BSTR bstrFormat, - /* [optional][in] */ VARIANT varDestLocale, - /* [retval][out] */ BSTR *pbstrFormattedString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *formatTime )( - IXTLRuntime * This, - /* [in] */ VARIANT varTime, - /* [in] */ BSTR bstrFormat, - /* [optional][in] */ VARIANT varDestLocale, - /* [retval][out] */ BSTR *pbstrFormattedString); - - END_INTERFACE - } IXTLRuntimeVtbl; - - interface IXTLRuntime - { - CONST_VTBL struct IXTLRuntimeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXTLRuntime_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXTLRuntime_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXTLRuntime_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXTLRuntime_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXTLRuntime_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXTLRuntime_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXTLRuntime_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXTLRuntime_get_nodeName(This,name) \ - ( (This)->lpVtbl -> get_nodeName(This,name) ) - -#define IXTLRuntime_get_nodeValue(This,value) \ - ( (This)->lpVtbl -> get_nodeValue(This,value) ) - -#define IXTLRuntime_put_nodeValue(This,value) \ - ( (This)->lpVtbl -> put_nodeValue(This,value) ) - -#define IXTLRuntime_get_nodeType(This,type) \ - ( (This)->lpVtbl -> get_nodeType(This,type) ) - -#define IXTLRuntime_get_parentNode(This,parent) \ - ( (This)->lpVtbl -> get_parentNode(This,parent) ) - -#define IXTLRuntime_get_childNodes(This,childList) \ - ( (This)->lpVtbl -> get_childNodes(This,childList) ) - -#define IXTLRuntime_get_firstChild(This,firstChild) \ - ( (This)->lpVtbl -> get_firstChild(This,firstChild) ) - -#define IXTLRuntime_get_lastChild(This,lastChild) \ - ( (This)->lpVtbl -> get_lastChild(This,lastChild) ) - -#define IXTLRuntime_get_previousSibling(This,previousSibling) \ - ( (This)->lpVtbl -> get_previousSibling(This,previousSibling) ) - -#define IXTLRuntime_get_nextSibling(This,nextSibling) \ - ( (This)->lpVtbl -> get_nextSibling(This,nextSibling) ) - -#define IXTLRuntime_get_attributes(This,attributeMap) \ - ( (This)->lpVtbl -> get_attributes(This,attributeMap) ) - -#define IXTLRuntime_insertBefore(This,newChild,refChild,outNewChild) \ - ( (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) ) - -#define IXTLRuntime_replaceChild(This,newChild,oldChild,outOldChild) \ - ( (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) ) - -#define IXTLRuntime_removeChild(This,childNode,oldChild) \ - ( (This)->lpVtbl -> removeChild(This,childNode,oldChild) ) - -#define IXTLRuntime_appendChild(This,newChild,outNewChild) \ - ( (This)->lpVtbl -> appendChild(This,newChild,outNewChild) ) - -#define IXTLRuntime_hasChildNodes(This,hasChild) \ - ( (This)->lpVtbl -> hasChildNodes(This,hasChild) ) - -#define IXTLRuntime_get_ownerDocument(This,XMLDOMDocument) \ - ( (This)->lpVtbl -> get_ownerDocument(This,XMLDOMDocument) ) - -#define IXTLRuntime_cloneNode(This,deep,cloneRoot) \ - ( (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) ) - -#define IXTLRuntime_get_nodeTypeString(This,nodeType) \ - ( (This)->lpVtbl -> get_nodeTypeString(This,nodeType) ) - -#define IXTLRuntime_get_text(This,text) \ - ( (This)->lpVtbl -> get_text(This,text) ) - -#define IXTLRuntime_put_text(This,text) \ - ( (This)->lpVtbl -> put_text(This,text) ) - -#define IXTLRuntime_get_specified(This,isSpecified) \ - ( (This)->lpVtbl -> get_specified(This,isSpecified) ) - -#define IXTLRuntime_get_definition(This,definitionNode) \ - ( (This)->lpVtbl -> get_definition(This,definitionNode) ) - -#define IXTLRuntime_get_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) ) - -#define IXTLRuntime_put_nodeTypedValue(This,typedValue) \ - ( (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) ) - -#define IXTLRuntime_get_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> get_dataType(This,dataTypeName) ) - -#define IXTLRuntime_put_dataType(This,dataTypeName) \ - ( (This)->lpVtbl -> put_dataType(This,dataTypeName) ) - -#define IXTLRuntime_get_xml(This,xmlString) \ - ( (This)->lpVtbl -> get_xml(This,xmlString) ) - -#define IXTLRuntime_transformNode(This,stylesheet,xmlString) \ - ( (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) ) - -#define IXTLRuntime_selectNodes(This,queryString,resultList) \ - ( (This)->lpVtbl -> selectNodes(This,queryString,resultList) ) - -#define IXTLRuntime_selectSingleNode(This,queryString,resultNode) \ - ( (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) ) - -#define IXTLRuntime_get_parsed(This,isParsed) \ - ( (This)->lpVtbl -> get_parsed(This,isParsed) ) - -#define IXTLRuntime_get_namespaceURI(This,namespaceURI) \ - ( (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) ) - -#define IXTLRuntime_get_prefix(This,prefixString) \ - ( (This)->lpVtbl -> get_prefix(This,prefixString) ) - -#define IXTLRuntime_get_baseName(This,nameString) \ - ( (This)->lpVtbl -> get_baseName(This,nameString) ) - -#define IXTLRuntime_transformNodeToObject(This,stylesheet,outputObject) \ - ( (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) ) - - -#define IXTLRuntime_uniqueID(This,pNode,pID) \ - ( (This)->lpVtbl -> uniqueID(This,pNode,pID) ) - -#define IXTLRuntime_depth(This,pNode,pDepth) \ - ( (This)->lpVtbl -> depth(This,pNode,pDepth) ) - -#define IXTLRuntime_childNumber(This,pNode,pNumber) \ - ( (This)->lpVtbl -> childNumber(This,pNode,pNumber) ) - -#define IXTLRuntime_ancestorChildNumber(This,bstrNodeName,pNode,pNumber) \ - ( (This)->lpVtbl -> ancestorChildNumber(This,bstrNodeName,pNode,pNumber) ) - -#define IXTLRuntime_absoluteChildNumber(This,pNode,pNumber) \ - ( (This)->lpVtbl -> absoluteChildNumber(This,pNode,pNumber) ) - -#define IXTLRuntime_formatIndex(This,lIndex,bstrFormat,pbstrFormattedString) \ - ( (This)->lpVtbl -> formatIndex(This,lIndex,bstrFormat,pbstrFormattedString) ) - -#define IXTLRuntime_formatNumber(This,dblNumber,bstrFormat,pbstrFormattedString) \ - ( (This)->lpVtbl -> formatNumber(This,dblNumber,bstrFormat,pbstrFormattedString) ) - -#define IXTLRuntime_formatDate(This,varDate,bstrFormat,varDestLocale,pbstrFormattedString) \ - ( (This)->lpVtbl -> formatDate(This,varDate,bstrFormat,varDestLocale,pbstrFormattedString) ) - -#define IXTLRuntime_formatTime(This,varTime,bstrFormat,varDestLocale,pbstrFormattedString) \ - ( (This)->lpVtbl -> formatTime(This,varTime,bstrFormat,varDestLocale,pbstrFormattedString) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXTLRuntime_INTERFACE_DEFINED__ */ - - -#ifndef __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__ -#define __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__ - -/* dispinterface XMLDOMDocumentEvents */ -/* [uuid][hidden] */ - - -EXTERN_C const IID DIID_XMLDOMDocumentEvents; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3efaa427-272f-11d2-836f-0000f87a7782") - XMLDOMDocumentEvents : public IDispatch - { - }; - -#else /* C style interface */ - - typedef struct XMLDOMDocumentEventsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in XMLDOMDocumentEvents * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in XMLDOMDocumentEvents * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in XMLDOMDocumentEvents * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - __RPC__in XMLDOMDocumentEvents * This, - /* [out] */ __RPC__out UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - __RPC__in XMLDOMDocumentEvents * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - __RPC__in XMLDOMDocumentEvents * 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 )( - XMLDOMDocumentEvents * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - END_INTERFACE - } XMLDOMDocumentEventsVtbl; - - interface XMLDOMDocumentEvents - { - CONST_VTBL struct XMLDOMDocumentEventsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define XMLDOMDocumentEvents_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define XMLDOMDocumentEvents_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define XMLDOMDocumentEvents_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define XMLDOMDocumentEvents_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define XMLDOMDocumentEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define XMLDOMDocumentEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define XMLDOMDocumentEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - -#endif /* __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__ */ - - -EXTERN_C const CLSID CLSID_DOMDocument; - -#ifdef __cplusplus - -class DECLSPEC_UUID("2933BF90-7B36-11d2-B20E-00C04F983E60") -DOMDocument; -#endif - -EXTERN_C const CLSID CLSID_DOMFreeThreadedDocument; - -#ifdef __cplusplus - -class DECLSPEC_UUID("2933BF91-7B36-11d2-B20E-00C04F983E60") -DOMFreeThreadedDocument; -#endif - -#ifndef __IXMLHttpRequest_INTERFACE_DEFINED__ -#define __IXMLHttpRequest_INTERFACE_DEFINED__ - -/* interface IXMLHttpRequest */ -/* [unique][helpstring][oleautomation][dual][uuid][object] */ - - -EXTERN_C const IID IID_IXMLHttpRequest; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ED8C108D-4349-11D2-91A4-00C04F7969E8") - IXMLHttpRequest : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE open( - /* [in] */ __RPC__in BSTR bstrMethod, - /* [in] */ __RPC__in BSTR bstrUrl, - /* [optional][in] */ VARIANT varAsync, - /* [optional][in] */ VARIANT bstrUser, - /* [optional][in] */ VARIANT bstrPassword) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setRequestHeader( - /* [in] */ __RPC__in BSTR bstrHeader, - /* [in] */ __RPC__in BSTR bstrValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getResponseHeader( - /* [in] */ __RPC__in BSTR bstrHeader, - /* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getAllResponseHeaders( - /* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrHeaders) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE send( - /* [optional][in] */ VARIANT varBody) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE abort( void) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_status( - /* [retval][out] */ __RPC__out long *plStatus) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_statusText( - /* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrStatus) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_responseXML( - /* [retval][out] */ __RPC__deref_out_opt IDispatch **ppBody) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_responseText( - /* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrBody) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_responseBody( - /* [retval][out] */ __RPC__out VARIANT *pvarBody) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_responseStream( - /* [retval][out] */ __RPC__out VARIANT *pvarBody) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_readyState( - /* [retval][out] */ __RPC__out long *plState) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_onreadystatechange( - /* [in] */ __RPC__in_opt IDispatch *pReadyStateSink) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLHttpRequestVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IXMLHttpRequest * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IXMLHttpRequest * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IXMLHttpRequest * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - __RPC__in IXMLHttpRequest * This, - /* [out] */ __RPC__out UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - __RPC__in IXMLHttpRequest * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - __RPC__in IXMLHttpRequest * 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 )( - IXMLHttpRequest * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *open )( - __RPC__in IXMLHttpRequest * This, - /* [in] */ __RPC__in BSTR bstrMethod, - /* [in] */ __RPC__in BSTR bstrUrl, - /* [optional][in] */ VARIANT varAsync, - /* [optional][in] */ VARIANT bstrUser, - /* [optional][in] */ VARIANT bstrPassword); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setRequestHeader )( - __RPC__in IXMLHttpRequest * This, - /* [in] */ __RPC__in BSTR bstrHeader, - /* [in] */ __RPC__in BSTR bstrValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getResponseHeader )( - __RPC__in IXMLHttpRequest * This, - /* [in] */ __RPC__in BSTR bstrHeader, - /* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getAllResponseHeaders )( - __RPC__in IXMLHttpRequest * This, - /* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrHeaders); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *send )( - __RPC__in IXMLHttpRequest * This, - /* [optional][in] */ VARIANT varBody); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *abort )( - __RPC__in IXMLHttpRequest * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( - __RPC__in IXMLHttpRequest * This, - /* [retval][out] */ __RPC__out long *plStatus); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_statusText )( - __RPC__in IXMLHttpRequest * This, - /* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrStatus); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseXML )( - __RPC__in IXMLHttpRequest * This, - /* [retval][out] */ __RPC__deref_out_opt IDispatch **ppBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseText )( - __RPC__in IXMLHttpRequest * This, - /* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseBody )( - __RPC__in IXMLHttpRequest * This, - /* [retval][out] */ __RPC__out VARIANT *pvarBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseStream )( - __RPC__in IXMLHttpRequest * This, - /* [retval][out] */ __RPC__out VARIANT *pvarBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - __RPC__in IXMLHttpRequest * This, - /* [retval][out] */ __RPC__out long *plState); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_onreadystatechange )( - __RPC__in IXMLHttpRequest * This, - /* [in] */ __RPC__in_opt IDispatch *pReadyStateSink); - - END_INTERFACE - } IXMLHttpRequestVtbl; - - interface IXMLHttpRequest - { - CONST_VTBL struct IXMLHttpRequestVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLHttpRequest_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLHttpRequest_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLHttpRequest_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLHttpRequest_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLHttpRequest_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLHttpRequest_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLHttpRequest_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLHttpRequest_open(This,bstrMethod,bstrUrl,varAsync,bstrUser,bstrPassword) \ - ( (This)->lpVtbl -> open(This,bstrMethod,bstrUrl,varAsync,bstrUser,bstrPassword) ) - -#define IXMLHttpRequest_setRequestHeader(This,bstrHeader,bstrValue) \ - ( (This)->lpVtbl -> setRequestHeader(This,bstrHeader,bstrValue) ) - -#define IXMLHttpRequest_getResponseHeader(This,bstrHeader,pbstrValue) \ - ( (This)->lpVtbl -> getResponseHeader(This,bstrHeader,pbstrValue) ) - -#define IXMLHttpRequest_getAllResponseHeaders(This,pbstrHeaders) \ - ( (This)->lpVtbl -> getAllResponseHeaders(This,pbstrHeaders) ) - -#define IXMLHttpRequest_send(This,varBody) \ - ( (This)->lpVtbl -> send(This,varBody) ) - -#define IXMLHttpRequest_abort(This) \ - ( (This)->lpVtbl -> abort(This) ) - -#define IXMLHttpRequest_get_status(This,plStatus) \ - ( (This)->lpVtbl -> get_status(This,plStatus) ) - -#define IXMLHttpRequest_get_statusText(This,pbstrStatus) \ - ( (This)->lpVtbl -> get_statusText(This,pbstrStatus) ) - -#define IXMLHttpRequest_get_responseXML(This,ppBody) \ - ( (This)->lpVtbl -> get_responseXML(This,ppBody) ) - -#define IXMLHttpRequest_get_responseText(This,pbstrBody) \ - ( (This)->lpVtbl -> get_responseText(This,pbstrBody) ) - -#define IXMLHttpRequest_get_responseBody(This,pvarBody) \ - ( (This)->lpVtbl -> get_responseBody(This,pvarBody) ) - -#define IXMLHttpRequest_get_responseStream(This,pvarBody) \ - ( (This)->lpVtbl -> get_responseStream(This,pvarBody) ) - -#define IXMLHttpRequest_get_readyState(This,plState) \ - ( (This)->lpVtbl -> get_readyState(This,plState) ) - -#define IXMLHttpRequest_put_onreadystatechange(This,pReadyStateSink) \ - ( (This)->lpVtbl -> put_onreadystatechange(This,pReadyStateSink) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLHttpRequest_INTERFACE_DEFINED__ */ - - -EXTERN_C const CLSID CLSID_XMLHTTPRequest; - -#ifdef __cplusplus - -class DECLSPEC_UUID("ED8C108E-4349-11D2-91A4-00C04F7969E8") -XMLHTTPRequest; -#endif - -#ifndef __IXMLDSOControl_INTERFACE_DEFINED__ -#define __IXMLDSOControl_INTERFACE_DEFINED__ - -/* interface IXMLDSOControl */ -/* [unique][helpstring][hidden][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDSOControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("310afa62-0575-11d2-9ca9-0060b0ec3d39") - IXMLDSOControl : public IDispatch - { - public: - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_XMLDocument( - /* [retval][out] */ IXMLDOMDocument **ppDoc) = 0; - - virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_XMLDocument( - /* [in] */ IXMLDOMDocument *ppDoc) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_JavaDSOCompatible( - /* [retval][out] */ BOOL *fJavaDSOCompatible) = 0; - - virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_JavaDSOCompatible( - /* [in] */ BOOL fJavaDSOCompatible) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_readyState( - /* [retval][out] */ long *state) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDSOControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDSOControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDSOControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDSOControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDSOControl * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDSOControl * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDSOControl * 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 )( - IXMLDSOControl * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_XMLDocument )( - IXMLDSOControl * This, - /* [retval][out] */ IXMLDOMDocument **ppDoc); - - /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_XMLDocument )( - IXMLDSOControl * This, - /* [in] */ IXMLDOMDocument *ppDoc); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_JavaDSOCompatible )( - IXMLDSOControl * This, - /* [retval][out] */ BOOL *fJavaDSOCompatible); - - /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_JavaDSOCompatible )( - IXMLDSOControl * This, - /* [in] */ BOOL fJavaDSOCompatible); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IXMLDSOControl * This, - /* [retval][out] */ long *state); - - END_INTERFACE - } IXMLDSOControlVtbl; - - interface IXMLDSOControl - { - CONST_VTBL struct IXMLDSOControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDSOControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDSOControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDSOControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDSOControl_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDSOControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDSOControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDSOControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDSOControl_get_XMLDocument(This,ppDoc) \ - ( (This)->lpVtbl -> get_XMLDocument(This,ppDoc) ) - -#define IXMLDSOControl_put_XMLDocument(This,ppDoc) \ - ( (This)->lpVtbl -> put_XMLDocument(This,ppDoc) ) - -#define IXMLDSOControl_get_JavaDSOCompatible(This,fJavaDSOCompatible) \ - ( (This)->lpVtbl -> get_JavaDSOCompatible(This,fJavaDSOCompatible) ) - -#define IXMLDSOControl_put_JavaDSOCompatible(This,fJavaDSOCompatible) \ - ( (This)->lpVtbl -> put_JavaDSOCompatible(This,fJavaDSOCompatible) ) - -#define IXMLDSOControl_get_readyState(This,state) \ - ( (This)->lpVtbl -> get_readyState(This,state) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDSOControl_INTERFACE_DEFINED__ */ - - -EXTERN_C const CLSID CLSID_XMLDSOControl; - -#ifdef __cplusplus - -class DECLSPEC_UUID("550dda30-0541-11d2-9ca9-0060b0ec3d39") -XMLDSOControl; -#endif - -#ifndef __IXMLElementCollection_INTERFACE_DEFINED__ -#define __IXMLElementCollection_INTERFACE_DEFINED__ - -/* interface IXMLElementCollection */ -/* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLElementCollection; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("65725580-9B5D-11d0-9BFE-00C04FC99C8E") - IXMLElementCollection : public IDispatch - { - public: - virtual /* [id][hidden][restricted][propput] */ HRESULT STDMETHODCALLTYPE put_length( - /* [in] */ long v) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_length( - /* [out][retval] */ long *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__newEnum( - /* [out][retval] */ IUnknown **ppUnk) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE item( - /* [in][optional] */ VARIANT var1, - /* [in][optional] */ VARIANT var2, - /* [out][retval] */ IDispatch **ppDisp) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLElementCollectionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLElementCollection * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLElementCollection * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLElementCollection * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLElementCollection * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLElementCollection * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLElementCollection * 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 )( - IXMLElementCollection * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [id][hidden][restricted][propput] */ HRESULT ( STDMETHODCALLTYPE *put_length )( - IXMLElementCollection * This, - /* [in] */ long v); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLElementCollection * This, - /* [out][retval] */ long *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__newEnum )( - IXMLElementCollection * This, - /* [out][retval] */ IUnknown **ppUnk); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *item )( - IXMLElementCollection * This, - /* [in][optional] */ VARIANT var1, - /* [in][optional] */ VARIANT var2, - /* [out][retval] */ IDispatch **ppDisp); - - END_INTERFACE - } IXMLElementCollectionVtbl; - - interface IXMLElementCollection - { - CONST_VTBL struct IXMLElementCollectionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLElementCollection_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLElementCollection_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLElementCollection_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLElementCollection_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLElementCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLElementCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLElementCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLElementCollection_put_length(This,v) \ - ( (This)->lpVtbl -> put_length(This,v) ) - -#define IXMLElementCollection_get_length(This,p) \ - ( (This)->lpVtbl -> get_length(This,p) ) - -#define IXMLElementCollection_get__newEnum(This,ppUnk) \ - ( (This)->lpVtbl -> get__newEnum(This,ppUnk) ) - -#define IXMLElementCollection_item(This,var1,var2,ppDisp) \ - ( (This)->lpVtbl -> item(This,var1,var2,ppDisp) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLElementCollection_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDocument_INTERFACE_DEFINED__ -#define __IXMLDocument_INTERFACE_DEFINED__ - -/* interface IXMLDocument */ -/* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDocument; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F52E2B61-18A1-11d1-B105-00805F49916B") - IXMLDocument : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_root( - /* [out][retval] */ IXMLElement **p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileSize( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileModifiedDate( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileUpdatedDate( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_URL( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_URL( - /* [in] */ BSTR p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_mimeType( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_readyState( - /* [out][retval] */ long *pl) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_charset( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_charset( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_version( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_doctype( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_dtdURL( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createElement( - /* [in] */ VARIANT vType, - /* [in][optional] */ VARIANT var1, - /* [out][retval] */ IXMLElement **ppElem) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDocumentVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDocument * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDocument * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDocument * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDocument * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDocument * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDocument * 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 )( - IXMLDocument * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_root )( - IXMLDocument * This, - /* [out][retval] */ IXMLElement **p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileSize )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileModifiedDate )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileUpdatedDate )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_URL )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_URL )( - IXMLDocument * This, - /* [in] */ BSTR p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_mimeType )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IXMLDocument * This, - /* [out][retval] */ long *pl); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_charset )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_charset )( - IXMLDocument * This, - /* [in] */ BSTR p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_doctype )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dtdURL )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createElement )( - IXMLDocument * This, - /* [in] */ VARIANT vType, - /* [in][optional] */ VARIANT var1, - /* [out][retval] */ IXMLElement **ppElem); - - END_INTERFACE - } IXMLDocumentVtbl; - - interface IXMLDocument - { - CONST_VTBL struct IXMLDocumentVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDocument_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDocument_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDocument_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDocument_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDocument_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDocument_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDocument_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDocument_get_root(This,p) \ - ( (This)->lpVtbl -> get_root(This,p) ) - -#define IXMLDocument_get_fileSize(This,p) \ - ( (This)->lpVtbl -> get_fileSize(This,p) ) - -#define IXMLDocument_get_fileModifiedDate(This,p) \ - ( (This)->lpVtbl -> get_fileModifiedDate(This,p) ) - -#define IXMLDocument_get_fileUpdatedDate(This,p) \ - ( (This)->lpVtbl -> get_fileUpdatedDate(This,p) ) - -#define IXMLDocument_get_URL(This,p) \ - ( (This)->lpVtbl -> get_URL(This,p) ) - -#define IXMLDocument_put_URL(This,p) \ - ( (This)->lpVtbl -> put_URL(This,p) ) - -#define IXMLDocument_get_mimeType(This,p) \ - ( (This)->lpVtbl -> get_mimeType(This,p) ) - -#define IXMLDocument_get_readyState(This,pl) \ - ( (This)->lpVtbl -> get_readyState(This,pl) ) - -#define IXMLDocument_get_charset(This,p) \ - ( (This)->lpVtbl -> get_charset(This,p) ) - -#define IXMLDocument_put_charset(This,p) \ - ( (This)->lpVtbl -> put_charset(This,p) ) - -#define IXMLDocument_get_version(This,p) \ - ( (This)->lpVtbl -> get_version(This,p) ) - -#define IXMLDocument_get_doctype(This,p) \ - ( (This)->lpVtbl -> get_doctype(This,p) ) - -#define IXMLDocument_get_dtdURL(This,p) \ - ( (This)->lpVtbl -> get_dtdURL(This,p) ) - -#define IXMLDocument_createElement(This,vType,var1,ppElem) \ - ( (This)->lpVtbl -> createElement(This,vType,var1,ppElem) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDocument_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDocument2_INTERFACE_DEFINED__ -#define __IXMLDocument2_INTERFACE_DEFINED__ - -/* interface IXMLDocument2 */ -/* [hidden][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDocument2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2B8DE2FE-8D2D-11d1-B2FC-00C04FD915A9") - IXMLDocument2 : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_root( - /* [out][retval] */ IXMLElement2 **p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileSize( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileModifiedDate( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileUpdatedDate( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_URL( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_URL( - /* [in] */ BSTR p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_mimeType( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_readyState( - /* [out][retval] */ long *pl) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_charset( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_charset( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_version( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_doctype( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_dtdURL( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createElement( - /* [in] */ VARIANT vType, - /* [in][optional] */ VARIANT var1, - /* [out][retval] */ IXMLElement2 **ppElem) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_async( - /* [out][retval] */ VARIANT_BOOL *pf) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_async( - /* [in] */ VARIANT_BOOL f) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLDocument2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDocument2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDocument2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDocument2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDocument2 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDocument2 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDocument2 * 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 )( - IXMLDocument2 * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_root )( - IXMLDocument2 * This, - /* [out][retval] */ IXMLElement2 **p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileSize )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileModifiedDate )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileUpdatedDate )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_URL )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_URL )( - IXMLDocument2 * This, - /* [in] */ BSTR p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_mimeType )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IXMLDocument2 * This, - /* [out][retval] */ long *pl); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_charset )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_charset )( - IXMLDocument2 * This, - /* [in] */ BSTR p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_doctype )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dtdURL )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createElement )( - IXMLDocument2 * This, - /* [in] */ VARIANT vType, - /* [in][optional] */ VARIANT var1, - /* [out][retval] */ IXMLElement2 **ppElem); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_async )( - IXMLDocument2 * This, - /* [out][retval] */ VARIANT_BOOL *pf); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_async )( - IXMLDocument2 * This, - /* [in] */ VARIANT_BOOL f); - - END_INTERFACE - } IXMLDocument2Vtbl; - - interface IXMLDocument2 - { - CONST_VTBL struct IXMLDocument2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDocument2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLDocument2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLDocument2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLDocument2_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLDocument2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLDocument2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLDocument2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLDocument2_get_root(This,p) \ - ( (This)->lpVtbl -> get_root(This,p) ) - -#define IXMLDocument2_get_fileSize(This,p) \ - ( (This)->lpVtbl -> get_fileSize(This,p) ) - -#define IXMLDocument2_get_fileModifiedDate(This,p) \ - ( (This)->lpVtbl -> get_fileModifiedDate(This,p) ) - -#define IXMLDocument2_get_fileUpdatedDate(This,p) \ - ( (This)->lpVtbl -> get_fileUpdatedDate(This,p) ) - -#define IXMLDocument2_get_URL(This,p) \ - ( (This)->lpVtbl -> get_URL(This,p) ) - -#define IXMLDocument2_put_URL(This,p) \ - ( (This)->lpVtbl -> put_URL(This,p) ) - -#define IXMLDocument2_get_mimeType(This,p) \ - ( (This)->lpVtbl -> get_mimeType(This,p) ) - -#define IXMLDocument2_get_readyState(This,pl) \ - ( (This)->lpVtbl -> get_readyState(This,pl) ) - -#define IXMLDocument2_get_charset(This,p) \ - ( (This)->lpVtbl -> get_charset(This,p) ) - -#define IXMLDocument2_put_charset(This,p) \ - ( (This)->lpVtbl -> put_charset(This,p) ) - -#define IXMLDocument2_get_version(This,p) \ - ( (This)->lpVtbl -> get_version(This,p) ) - -#define IXMLDocument2_get_doctype(This,p) \ - ( (This)->lpVtbl -> get_doctype(This,p) ) - -#define IXMLDocument2_get_dtdURL(This,p) \ - ( (This)->lpVtbl -> get_dtdURL(This,p) ) - -#define IXMLDocument2_createElement(This,vType,var1,ppElem) \ - ( (This)->lpVtbl -> createElement(This,vType,var1,ppElem) ) - -#define IXMLDocument2_get_async(This,pf) \ - ( (This)->lpVtbl -> get_async(This,pf) ) - -#define IXMLDocument2_put_async(This,f) \ - ( (This)->lpVtbl -> put_async(This,f) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDocument2_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLElement_INTERFACE_DEFINED__ -#define __IXMLElement_INTERFACE_DEFINED__ - -/* interface IXMLElement */ -/* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLElement; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3F7F31AC-E15F-11d0-9C25-00C04FC99C8E") - IXMLElement : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_tagName( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_tagName( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_parent( - /* [out][retval] */ IXMLElement **ppParent) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setAttribute( - /* [in] */ BSTR strPropertyName, - /* [in] */ VARIANT PropertyValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getAttribute( - /* [in] */ BSTR strPropertyName, - /* [out][retval] */ VARIANT *PropertyValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeAttribute( - /* [in] */ BSTR strPropertyName) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_children( - /* [out][retval] */ IXMLElementCollection **pp) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_type( - /* [out][retval] */ long *plType) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_text( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_text( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addChild( - /* [in] */ IXMLElement *pChildElem, - long lIndex, - long lReserved) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeChild( - /* [in] */ IXMLElement *pChildElem) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLElementVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLElement * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLElement * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLElement * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLElement * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLElement * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLElement * 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 )( - IXMLElement * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_tagName )( - IXMLElement * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_tagName )( - IXMLElement * This, - /* [in] */ BSTR p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parent )( - IXMLElement * This, - /* [out][retval] */ IXMLElement **ppParent); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setAttribute )( - IXMLElement * This, - /* [in] */ BSTR strPropertyName, - /* [in] */ VARIANT PropertyValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getAttribute )( - IXMLElement * This, - /* [in] */ BSTR strPropertyName, - /* [out][retval] */ VARIANT *PropertyValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeAttribute )( - IXMLElement * This, - /* [in] */ BSTR strPropertyName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_children )( - IXMLElement * This, - /* [out][retval] */ IXMLElementCollection **pp); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( - IXMLElement * This, - /* [out][retval] */ long *plType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLElement * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLElement * This, - /* [in] */ BSTR p); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addChild )( - IXMLElement * This, - /* [in] */ IXMLElement *pChildElem, - long lIndex, - long lReserved); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLElement * This, - /* [in] */ IXMLElement *pChildElem); - - END_INTERFACE - } IXMLElementVtbl; - - interface IXMLElement - { - CONST_VTBL struct IXMLElementVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLElement_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLElement_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLElement_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLElement_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLElement_get_tagName(This,p) \ - ( (This)->lpVtbl -> get_tagName(This,p) ) - -#define IXMLElement_put_tagName(This,p) \ - ( (This)->lpVtbl -> put_tagName(This,p) ) - -#define IXMLElement_get_parent(This,ppParent) \ - ( (This)->lpVtbl -> get_parent(This,ppParent) ) - -#define IXMLElement_setAttribute(This,strPropertyName,PropertyValue) \ - ( (This)->lpVtbl -> setAttribute(This,strPropertyName,PropertyValue) ) - -#define IXMLElement_getAttribute(This,strPropertyName,PropertyValue) \ - ( (This)->lpVtbl -> getAttribute(This,strPropertyName,PropertyValue) ) - -#define IXMLElement_removeAttribute(This,strPropertyName) \ - ( (This)->lpVtbl -> removeAttribute(This,strPropertyName) ) - -#define IXMLElement_get_children(This,pp) \ - ( (This)->lpVtbl -> get_children(This,pp) ) - -#define IXMLElement_get_type(This,plType) \ - ( (This)->lpVtbl -> get_type(This,plType) ) - -#define IXMLElement_get_text(This,p) \ - ( (This)->lpVtbl -> get_text(This,p) ) - -#define IXMLElement_put_text(This,p) \ - ( (This)->lpVtbl -> put_text(This,p) ) - -#define IXMLElement_addChild(This,pChildElem,lIndex,lReserved) \ - ( (This)->lpVtbl -> addChild(This,pChildElem,lIndex,lReserved) ) - -#define IXMLElement_removeChild(This,pChildElem) \ - ( (This)->lpVtbl -> removeChild(This,pChildElem) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLElement_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLElement2_INTERFACE_DEFINED__ -#define __IXMLElement2_INTERFACE_DEFINED__ - -/* interface IXMLElement2 */ -/* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLElement2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2B8DE2FF-8D2D-11d1-B2FC-00C04FD915A9") - IXMLElement2 : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_tagName( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_tagName( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_parent( - /* [out][retval] */ IXMLElement2 **ppParent) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setAttribute( - /* [in] */ BSTR strPropertyName, - /* [in] */ VARIANT PropertyValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getAttribute( - /* [in] */ BSTR strPropertyName, - /* [out][retval] */ VARIANT *PropertyValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeAttribute( - /* [in] */ BSTR strPropertyName) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_children( - /* [out][retval] */ IXMLElementCollection **pp) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_type( - /* [out][retval] */ long *plType) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_text( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_text( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addChild( - /* [in] */ IXMLElement2 *pChildElem, - long lIndex, - long lReserved) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeChild( - /* [in] */ IXMLElement2 *pChildElem) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_attributes( - /* [out][retval] */ IXMLElementCollection **pp) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLElement2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLElement2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLElement2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLElement2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLElement2 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLElement2 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLElement2 * 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 )( - IXMLElement2 * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_tagName )( - IXMLElement2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_tagName )( - IXMLElement2 * This, - /* [in] */ BSTR p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parent )( - IXMLElement2 * This, - /* [out][retval] */ IXMLElement2 **ppParent); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setAttribute )( - IXMLElement2 * This, - /* [in] */ BSTR strPropertyName, - /* [in] */ VARIANT PropertyValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getAttribute )( - IXMLElement2 * This, - /* [in] */ BSTR strPropertyName, - /* [out][retval] */ VARIANT *PropertyValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeAttribute )( - IXMLElement2 * This, - /* [in] */ BSTR strPropertyName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_children )( - IXMLElement2 * This, - /* [out][retval] */ IXMLElementCollection **pp); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( - IXMLElement2 * This, - /* [out][retval] */ long *plType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLElement2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLElement2 * This, - /* [in] */ BSTR p); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addChild )( - IXMLElement2 * This, - /* [in] */ IXMLElement2 *pChildElem, - long lIndex, - long lReserved); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLElement2 * This, - /* [in] */ IXMLElement2 *pChildElem); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLElement2 * This, - /* [out][retval] */ IXMLElementCollection **pp); - - END_INTERFACE - } IXMLElement2Vtbl; - - interface IXMLElement2 - { - CONST_VTBL struct IXMLElement2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLElement2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLElement2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLElement2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLElement2_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLElement2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLElement2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLElement2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLElement2_get_tagName(This,p) \ - ( (This)->lpVtbl -> get_tagName(This,p) ) - -#define IXMLElement2_put_tagName(This,p) \ - ( (This)->lpVtbl -> put_tagName(This,p) ) - -#define IXMLElement2_get_parent(This,ppParent) \ - ( (This)->lpVtbl -> get_parent(This,ppParent) ) - -#define IXMLElement2_setAttribute(This,strPropertyName,PropertyValue) \ - ( (This)->lpVtbl -> setAttribute(This,strPropertyName,PropertyValue) ) - -#define IXMLElement2_getAttribute(This,strPropertyName,PropertyValue) \ - ( (This)->lpVtbl -> getAttribute(This,strPropertyName,PropertyValue) ) - -#define IXMLElement2_removeAttribute(This,strPropertyName) \ - ( (This)->lpVtbl -> removeAttribute(This,strPropertyName) ) - -#define IXMLElement2_get_children(This,pp) \ - ( (This)->lpVtbl -> get_children(This,pp) ) - -#define IXMLElement2_get_type(This,plType) \ - ( (This)->lpVtbl -> get_type(This,plType) ) - -#define IXMLElement2_get_text(This,p) \ - ( (This)->lpVtbl -> get_text(This,p) ) - -#define IXMLElement2_put_text(This,p) \ - ( (This)->lpVtbl -> put_text(This,p) ) - -#define IXMLElement2_addChild(This,pChildElem,lIndex,lReserved) \ - ( (This)->lpVtbl -> addChild(This,pChildElem,lIndex,lReserved) ) - -#define IXMLElement2_removeChild(This,pChildElem) \ - ( (This)->lpVtbl -> removeChild(This,pChildElem) ) - -#define IXMLElement2_get_attributes(This,pp) \ - ( (This)->lpVtbl -> get_attributes(This,pp) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLElement2_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLAttribute_INTERFACE_DEFINED__ -#define __IXMLAttribute_INTERFACE_DEFINED__ - -/* interface IXMLAttribute */ -/* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLAttribute; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D4D4A0FC-3B73-11d1-B2B4-00C04FB92596") - IXMLAttribute : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_name( - /* [out][retval] */ BSTR *n) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_value( - /* [out][retval] */ BSTR *v) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLAttributeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLAttribute * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLAttribute * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLAttribute * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLAttribute * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLAttribute * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLAttribute * 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 )( - IXMLAttribute * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( - IXMLAttribute * This, - /* [out][retval] */ BSTR *n); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( - IXMLAttribute * This, - /* [out][retval] */ BSTR *v); - - END_INTERFACE - } IXMLAttributeVtbl; - - interface IXMLAttribute - { - CONST_VTBL struct IXMLAttributeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLAttribute_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLAttribute_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLAttribute_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLAttribute_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IXMLAttribute_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IXMLAttribute_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IXMLAttribute_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IXMLAttribute_get_name(This,n) \ - ( (This)->lpVtbl -> get_name(This,n) ) - -#define IXMLAttribute_get_value(This,v) \ - ( (This)->lpVtbl -> get_value(This,v) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLAttribute_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLError_INTERFACE_DEFINED__ -#define __IXMLError_INTERFACE_DEFINED__ - -/* interface IXMLError */ -/* [helpstring][hidden][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLError; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("948C5AD3-C58D-11d0-9C0B-00C04FC99C8E") - IXMLError : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetErrorInfo( - XML_ERROR *pErrorReturn) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IXMLErrorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLError * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLError * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLError * This); - - HRESULT ( STDMETHODCALLTYPE *GetErrorInfo )( - IXMLError * This, - XML_ERROR *pErrorReturn); - - END_INTERFACE - } IXMLErrorVtbl; - - interface IXMLError - { - CONST_VTBL struct IXMLErrorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLError_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IXMLError_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IXMLError_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IXMLError_GetErrorInfo(This,pErrorReturn) \ - ( (This)->lpVtbl -> GetErrorInfo(This,pErrorReturn) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLError_INTERFACE_DEFINED__ */ - - -EXTERN_C const CLSID CLSID_XMLDocument; - -#ifdef __cplusplus - -class DECLSPEC_UUID("CFC399AF-D876-11d0-9C10-00C04FC99C8E") -XMLDocument; -#endif -#endif /* __MSXML_LIBRARY_DEFINED__ */ - -/* interface __MIDL_itf_msxml_0000_0001 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -#if _MSC_VER >= 1200 -#pragma warning(pop) -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_msxml_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_msxml_0000_0001_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/custom/winsdk/include/um/objbase.h b/src/custom/winsdk/include/um/objbase.h deleted file mode 100644 index 9f0f61c..0000000 --- a/src/custom/winsdk/include/um/objbase.h +++ /dev/null @@ -1,281 +0,0 @@ -#include - - -//+--------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// File: objbase.h -// -// Contents: Component object model definitions. -// -//---------------------------------------------------------------------------- - -#include -#include - - -#if !defined( _OBJBASE_H_ ) -#define _OBJBASE_H_ - -#if _MSC_VER > 1000 -#pragma once -#endif - -#include -#include -#include - -// COM initialization flags; passed to CoInitialize. -typedef enum tagCOINIT -{ - COINIT_APARTMENTTHREADED = 0x2, // Apartment model - -#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM - // These constants are only valid on Windows NT 4.0 - COINIT_MULTITHREADED = COINITBASE_MULTITHREADED, - COINIT_DISABLE_OLE1DDE = 0x4, // Don't use DDE for Ole1 support. - COINIT_SPEED_OVER_MEMORY = 0x8, // Trade memory for speed. -#endif // DCOM -} COINIT; - - - -// interface marshaling definitions -#define MARSHALINTERFACE_MIN 500 // minimum number of bytes for interface marshal - - -/* flags for internet asynchronous and layout docfile */ -#define ASYNC_MODE_COMPATIBILITY 0x00000001L -#define ASYNC_MODE_DEFAULT 0x00000000L - -#define STGTY_REPEAT 0x00000100L -#define STG_TOEND 0xFFFFFFFFL - -#define STG_LAYOUT_SEQUENTIAL 0x00000000L -#define STG_LAYOUT_INTERLEAVED 0x00000001L - -#include - -#ifdef _OLE32_ -#ifdef _OLE32PRIV_ -BOOL _fastcall wIsEqualGUID(REFGUID rguid1, REFGUID rguid2); -#define IsEqualGUID(rguid1, rguid2) wIsEqualGUID(rguid1, rguid2) -#else -#define __INLINE_ISEQUAL_GUID -#endif // _OLE32PRIV_ -#endif // _OLE32_ - - -#pragma region Desktop Partition -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -/****** STD Object API Prototypes *****************************************/ - -WINOLEAPI_(DWORD) CoBuildVersion( VOID ); - -/* init/uninit */ - -_Check_return_ WINOLEAPI CoInitialize(_In_opt_ LPVOID pvReserved); - -#define COM_SUPPORT_MALLOC_SPIES -_Check_return_ WINOLEAPI CoRegisterMallocSpy(_In_ LPMALLOCSPY pMallocSpy); -_Check_return_ WINOLEAPI CoRevokeMallocSpy(void); -WINOLEAPI CoCreateStandardMalloc(_In_ DWORD memctx, _Outptr_ IMalloc FAR* FAR* ppMalloc); - -#if (_WIN32_WINNT >= 0x0501) - - -_Check_return_ WINOLEAPI CoRegisterInitializeSpy(_In_ IInitializeSpy *pSpy, _Out_ ULARGE_INTEGER *puliCookie); -_Check_return_ WINOLEAPI CoRevokeInitializeSpy(_In_ ULARGE_INTEGER uliCookie); - -// COM System Security Descriptors (used when the corresponding registry -// entries are absent) -typedef enum tagCOMSD -{ - SD_LAUNCHPERMISSIONS = 0, // Machine wide launch permissions - SD_ACCESSPERMISSIONS = 1, // Machine wide acesss permissions - SD_LAUNCHRESTRICTIONS = 2, // Machine wide launch limits - SD_ACCESSRESTRICTIONS = 3 // Machine wide access limits - -} COMSD; -_Check_return_ WINOLEAPI CoGetSystemSecurityPermissions(COMSD comSDType, PSECURITY_DESCRIPTOR *ppSD); - -#endif - -/* dll loading helpers; keeps track of ref counts and unloads all on exit */ - -WINOLEAPI_(HINSTANCE) CoLoadLibrary(_In_ LPOLESTR lpszLibName, _In_ BOOL bAutoFree); -WINOLEAPI_(void) CoFreeLibrary(_In_ HINSTANCE hInst); -WINOLEAPI_(void) CoFreeAllLibraries(void); - - -#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM - - -_Check_return_ WINOLEAPI CoGetInstanceFromFile( - _In_opt_ COSERVERINFO * pServerInfo, - _In_opt_ CLSID * pClsid, - _In_opt_ IUnknown * punkOuter, // only relevant locally - _In_ DWORD dwClsCtx, - _In_ DWORD grfMode, - _In_ _Null_terminated_ OLECHAR * pwszName, - _In_ DWORD dwCount, - _Inout_updates_(dwCount) MULTI_QI * pResults ); - - -_Check_return_ WINOLEAPI CoGetInstanceFromIStorage( - _In_opt_ COSERVERINFO * pServerInfo, - _In_opt_ CLSID * pClsid, - _In_opt_ IUnknown * punkOuter, // only relevant locally - _In_ DWORD dwClsCtx, - _In_ struct IStorage * pstg, - _In_ DWORD dwCount, - _Inout_updates_(dwCount) MULTI_QI * pResults ); - -#endif // DCOM - -/* Call related APIs */ -#if (_WIN32_WINNT >= 0x0500 ) || defined(_WIN32_DCOM) // DCOM - - -WINOLEAPI CoAllowSetForegroundWindow(_In_ IUnknown *pUnk, _In_opt_ LPVOID lpvReserved); - - -WINOLEAPI DcomChannelSetHResult(_In_opt_ LPVOID pvReserved, _In_opt_ ULONG* pulReserved, _In_ HRESULT appsHR); - -#endif - -/* other helpers */ -WINOLEAPI_(BOOL) CoIsOle1Class(_In_ REFCLSID rclsid); -_Check_return_ WINOLEAPI CLSIDFromProgIDEx (_In_ LPCOLESTR lpszProgID, _Out_ LPCLSID lpclsid); - -WINOLEAPI_(BOOL) CoFileTimeToDosDateTime( - _In_ FILETIME FAR* lpFileTime, _Out_ LPWORD lpDosDate, _Out_ LPWORD lpDosTime); -WINOLEAPI_(BOOL) CoDosDateTimeToFileTime( - _In_ WORD nDosDate, _In_ WORD nDosTime, _Out_ FILETIME FAR* lpFileTime); -WINOLEAPI CoFileTimeNow( _Out_ FILETIME FAR* lpFileTime ); - -_Check_return_ WINOLEAPI CoRegisterMessageFilter( _In_opt_ LPMESSAGEFILTER lpMessageFilter, - _Outptr_opt_result_maybenull_ LPMESSAGEFILTER FAR* lplpMessageFilter ); - -#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM - -WINOLEAPI CoRegisterChannelHook( _In_ REFGUID ExtensionUuid, _In_ IChannelHook *pChannelHook ); -#endif // DCOM - - -/* TreatAs APIS */ - -_Check_return_ WINOLEAPI CoTreatAsClass(_In_ REFCLSID clsidOld, _In_ REFCLSID clsidNew); - - -/****** DV APIs ***********************************************************/ - -WINOLEAPI CreateDataAdviseHolder(_Outptr_ LPDATAADVISEHOLDER FAR* ppDAHolder); - -WINOLEAPI CreateDataCache(_In_opt_ LPUNKNOWN pUnkOuter, _In_ REFCLSID rclsid, - _In_ REFIID iid, _Out_ LPVOID FAR* ppv); - - -/****** Storage API Prototypes ********************************************/ - - -_Check_return_ WINOLEAPI StgOpenAsyncDocfileOnIFillLockBytes( _In_ IFillLockBytes *pflb, - _In_ DWORD grfMode, - _In_ DWORD asyncFlags, - _Outptr_ IStorage** ppstgOpen); - -_Check_return_ WINOLEAPI StgGetIFillLockBytesOnILockBytes( _In_ ILockBytes *pilb, - _Outptr_ IFillLockBytes** ppflb); - -_Check_return_ WINOLEAPI StgGetIFillLockBytesOnFile(_In_ _Null_terminated_ OLECHAR const *pwcsName, - _Outptr_ IFillLockBytes** ppflb); - -_Check_return_ WINOLEAPI StgOpenLayoutDocfile(_In_ _Null_terminated_ OLECHAR const *pwcsDfName, - _In_ DWORD grfMode, - _In_ DWORD reserved, - _Outptr_ IStorage** ppstgOpen); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#pragma region Desktop Partition -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -WINOLEAPI CoInstall( - _In_ IBindCtx * pbc, - _In_ DWORD dwFlags, - _In_ uCLSSPEC * pClassSpec, - _In_ QUERYCONTEXT * pQuery, - _In_ LPWSTR pszCodeBase); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#pragma region PC Application Partition -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PC_APP) - -// -// Moniker APIs -// - -_Check_return_ WINOLEAPI BindMoniker(_In_ LPMONIKER pmk, _In_ DWORD grfOpt, _In_ REFIID iidResult, _Outptr_ LPVOID FAR* ppvResult); - -_Check_return_ WINOLEAPI CoGetObject(_In_ LPCWSTR pszName, _In_opt_ BIND_OPTS *pBindOptions, _In_ REFIID riid, _Outptr_ void **ppv); -_Check_return_ WINOLEAPI MkParseDisplayName(_In_ LPBC pbc, _In_ LPCOLESTR szUserName, - _Out_ ULONG FAR * pchEaten, _Outptr_ LPMONIKER FAR * ppmk); -_Check_return_ WINOLEAPI MonikerRelativePathTo(_In_ LPMONIKER pmkSrc, _In_ LPMONIKER pmkDest, _Outptr_ LPMONIKER - FAR* ppmkRelPath, _In_ BOOL dwReserved); -_Check_return_ WINOLEAPI MonikerCommonPrefixWith(_In_ LPMONIKER pmkThis, _In_ LPMONIKER pmkOther, - _Outptr_ LPMONIKER FAR* ppmkCommon); -_Check_return_ WINOLEAPI CreateBindCtx(_In_ DWORD reserved, _Outptr_ LPBC FAR* ppbc); -_Check_return_ WINOLEAPI CreateGenericComposite(_In_opt_ LPMONIKER pmkFirst, _In_opt_ LPMONIKER pmkRest, - _Outptr_ LPMONIKER FAR* ppmkComposite); -_Check_return_ WINOLEAPI GetClassFile (_In_ LPCOLESTR szFilename, _Out_ CLSID FAR* pclsid); - -_Check_return_ WINOLEAPI CreateClassMoniker(_In_ REFCLSID rclsid, _Outptr_ LPMONIKER FAR* ppmk); - -_Check_return_ WINOLEAPI CreateFileMoniker(_In_ LPCOLESTR lpszPathName, _Outptr_ LPMONIKER FAR* ppmk); - -_Check_return_ WINOLEAPI CreateItemMoniker(_In_ LPCOLESTR lpszDelim, _In_ LPCOLESTR lpszItem, - _Outptr_ LPMONIKER FAR* ppmk); -_Check_return_ WINOLEAPI CreateAntiMoniker(_Outptr_ LPMONIKER FAR* ppmk); -_Check_return_ WINOLEAPI CreatePointerMoniker(_In_opt_ LPUNKNOWN punk, _Outptr_ LPMONIKER FAR* ppmk); -_Check_return_ WINOLEAPI CreateObjrefMoniker(_In_opt_ LPUNKNOWN punk, _Outptr_ LPMONIKER FAR * ppmk); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PC_APP) */ -#pragma endregion - -#pragma region Desktop Partition -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -_Check_return_ WINOLEAPI GetRunningObjectTable( _In_ DWORD reserved, _Outptr_ LPRUNNINGOBJECTTABLE FAR* pprot); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#include -#include - -#pragma region Desktop Partition -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -// -// Standard Progress Indicator implementation -// -WINOLEAPI CreateStdProgressIndicator(_In_ HWND hwndParent, - _In_ LPCOLESTR pszTitle, - _In_ IBindStatusCallback * pIbscCaller, - _Outptr_ IBindStatusCallback ** ppIbsc); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - - -#ifndef RC_INVOKED -#include -#endif // RC_INVOKED - -#endif // __OBJBASE_H__ diff --git a/src/custom/winsdk/include/um/ole.h b/src/custom/winsdk/include/um/ole.h deleted file mode 100644 index 7b740b0..0000000 --- a/src/custom/winsdk/include/um/ole.h +++ /dev/null @@ -1,516 +0,0 @@ -#include - -/*****************************************************************************\ -* * -* ole.h - Object Linking and Embedding functions, types, and definitions* -* * -* Version 1.0 * -* * -* NOTE: windows.h must be #included first * -* * -* Copyright (c) Microsoft Corporation. All rights reserved. * -* * -\*****************************************************************************/ - -#ifndef _INC_OLE -#define _INC_OLE - -#if _MSC_VER > 1000 -#pragma once -#endif - -#ifdef WIN16 -#include /* Assume byte packing throughout */ -#endif - -#ifdef __cplusplus -extern "C" { /* Assume C declarations for C++ */ -#endif /* __cplusplus */ - -#ifndef WINAPI /* If not included with 3.1 headers... */ -#define WINAPI FAR PASCAL -#define CALLBACK FAR PASCAL -#define LPCSTR LPSTR -#define LRESULT LONG_PTR -#define HGLOBAL HANDLE -#endif /* _INC_WINDOWS */ - - -#ifdef STRICT -#define OLE_LPCSTR LPCSTR -#define OLE_CONST const -#else /* STRICT */ -#define OLE_LPCSTR LPSTR -#define OLE_CONST -#endif /* !STRICT */ - -#define LRESULT LONG_PTR -#define HGLOBAL HANDLE - - -/* Object types */ -#define OT_LINK 1L -#define OT_EMBEDDED 2L -#define OT_STATIC 3L - -/* activate verbs */ -#define OLEVERB_PRIMARY 0 - -/* target device info structure */ -typedef struct _OLETARGETDEVICE -{ - USHORT otdDeviceNameOffset; - USHORT otdDriverNameOffset; - USHORT otdPortNameOffset; - USHORT otdExtDevmodeOffset; - USHORT otdExtDevmodeSize; - USHORT otdEnvironmentOffset; - USHORT otdEnvironmentSize; - BYTE otdData[1]; -} OLETARGETDEVICE; -typedef OLETARGETDEVICE FAR* LPOLETARGETDEVICE; - -/* flags used in some methods */ -#define OF_SET 0x0001 -#define OF_GET 0x0002 -#define OF_HANDLER 0x0004 - -/* return codes for OLE functions */ -typedef enum -{ - OLE_OK, /* 0 Function operated correctly */ - - OLE_WAIT_FOR_RELEASE, /* 1 Command has been initiated, client */ - /* must wait for release. keep dispatching */ - /* messages till OLE_RELESE in callback */ - - OLE_BUSY, /* 2 Tried to execute a method while another */ - /* method is in progress. */ - - OLE_ERROR_PROTECT_ONLY, /* 3 Ole APIs are called in real mode */ - OLE_ERROR_MEMORY, /* 4 Could not alloc or lock memory */ - OLE_ERROR_STREAM, /* 5 (OLESTREAM) stream error */ - OLE_ERROR_STATIC, /* 6 Non static object expected */ - OLE_ERROR_BLANK, /* 7 Critical data missing */ - OLE_ERROR_DRAW, /* 8 Error while drawing */ - OLE_ERROR_METAFILE, /* 9 Invalid metafile */ - OLE_ERROR_ABORT, /* 10 Client chose to abort metafile drawing */ - OLE_ERROR_CLIPBOARD, /* 11 Failed to get/set clipboard data */ - OLE_ERROR_FORMAT, /* 12 Requested format is not available */ - OLE_ERROR_OBJECT, /* 13 Not a valid object */ - OLE_ERROR_OPTION, /* 14 Invalid option(link update / render) */ - OLE_ERROR_PROTOCOL, /* 15 Invalid protocol */ - OLE_ERROR_ADDRESS, /* 16 One of the pointers is invalid */ - OLE_ERROR_NOT_EQUAL, /* 17 Objects are not equal */ - OLE_ERROR_HANDLE, /* 18 Invalid handle encountered */ - OLE_ERROR_GENERIC, /* 19 Some general error */ - OLE_ERROR_CLASS, /* 20 Invalid class */ - OLE_ERROR_SYNTAX, /* 21 Command syntax is invalid */ - OLE_ERROR_DATATYPE, /* 22 Data format is not supported */ - OLE_ERROR_PALETTE, /* 23 Invalid color palette */ - OLE_ERROR_NOT_LINK, /* 24 Not a linked object */ - OLE_ERROR_NOT_EMPTY, /* 25 Client doc contains objects. */ - OLE_ERROR_SIZE, /* 26 Incorrect buffer size passed to the api */ - /* that places some string in caller's */ - /* buffer */ - - OLE_ERROR_DRIVE, /* 27 Drive letter in doc name is invalid */ - OLE_ERROR_NETWORK, /* 28 Failed to establish connection to a */ - /* network share on which the document */ - /* is located */ - - OLE_ERROR_NAME, /* 29 Invalid name(doc name, object name), */ - /* etc.. passed to the APIs */ - - OLE_ERROR_TEMPLATE, /* 30 Server failed to load template */ - OLE_ERROR_NEW, /* 31 Server failed to create new doc */ - OLE_ERROR_EDIT, /* 32 Server failed to create embedded */ - /* instance */ - OLE_ERROR_OPEN, /* 33 Server failed to open document, */ - /* possible invalid link */ - - OLE_ERROR_NOT_OPEN, /* 34 Object is not open for editing */ - OLE_ERROR_LAUNCH, /* 35 Failed to launch server */ - OLE_ERROR_COMM, /* 36 Failed to communicate with server */ - OLE_ERROR_TERMINATE, /* 37 Error in termination */ - OLE_ERROR_COMMAND, /* 38 Error in execute */ - OLE_ERROR_SHOW, /* 39 Error in show */ - OLE_ERROR_DOVERB, /* 40 Error in sending do verb, or invalid */ - /* verb */ - OLE_ERROR_ADVISE_NATIVE, /* 41 Item could be missing */ - OLE_ERROR_ADVISE_PICT, /* 42 Item could be missing or server doesn't */ - /* this format. */ - - OLE_ERROR_ADVISE_RENAME, /* 43 Server doesn't support rename */ - OLE_ERROR_POKE_NATIVE, /* 44 Failure of poking native data to server */ - OLE_ERROR_REQUEST_NATIVE, /* 45 Server failed to render native data */ - OLE_ERROR_REQUEST_PICT, /* 46 Server failed to render presentation */ - /* data */ - OLE_ERROR_SERVER_BLOCKED, /* 47 Trying to block a blocked server or */ - /* trying to revoke a blocked server */ - /* or document */ - - OLE_ERROR_REGISTRATION, /* 48 Server is not registered in regestation */ - /* data base */ - OLE_ERROR_ALREADY_REGISTERED,/*49 Trying to register same doc multiple */ - /* times */ - OLE_ERROR_TASK, /* 50 Server or client task is invalid */ - OLE_ERROR_OUTOFDATE, /* 51 Object is out of date */ - OLE_ERROR_CANT_UPDATE_CLIENT,/* 52 Embed doc's client doesn't accept */ - /* updates */ - OLE_ERROR_UPDATE, /* 53 erorr while trying to update */ - OLE_ERROR_SETDATA_FORMAT, /* 54 Server app doesn't understand the */ - /* format given to its SetData method */ - OLE_ERROR_STATIC_FROM_OTHER_OS,/* 55 trying to load a static object created */ - /* on another Operating System */ - OLE_ERROR_FILE_VER, - - /* Following are warnings */ - OLE_WARN_DELETE_DATA = 1000 /* Caller must delete the data when he is */ - /* done with it. */ -} OLESTATUS; - - - -/* Codes for CallBack events */ -typedef enum -{ - OLE_CHANGED, /* 0 */ - OLE_SAVED, /* 1 */ - OLE_CLOSED, /* 2 */ - OLE_RENAMED, /* 3 */ - OLE_QUERY_PAINT, /* 4 Interruptible paint support */ - OLE_RELEASE, /* 5 Object is released(asynchronous operation */ - /* is completed) */ - OLE_QUERY_RETRY /* 6 Query for retry when server sends busy ACK */ -} OLE_NOTIFICATION; - -typedef enum -{ - OLE_NONE, /* 0 no method active */ - OLE_DELETE, /* 1 object delete */ - OLE_LNKPASTE, /* 2 PasteLink(auto reconnect) */ - OLE_EMBPASTE, /* 3 paste(and update) */ - OLE_SHOW, /* 4 Show */ - OLE_RUN, /* 5 Run */ - OLE_ACTIVATE, /* 6 Activate */ - OLE_UPDATE, /* 7 Update */ - OLE_CLOSE, /* 8 Close */ - OLE_RECONNECT, /* 9 Reconnect */ - OLE_SETUPDATEOPTIONS, /* 10 setting update options */ - OLE_SERVERUNLAUNCH, /* 11 server is being unlaunched */ - OLE_LOADFROMSTREAM, /* 12 LoadFromStream(auto reconnect) */ - OLE_SETDATA, /* 13 OleSetData */ - OLE_REQUESTDATA, /* 14 OleRequestData */ - OLE_OTHER, /* 15 other misc async operations */ - OLE_CREATE, /* 16 create */ - OLE_CREATEFROMTEMPLATE, /* 17 CreatefromTemplate */ - OLE_CREATELINKFROMFILE, /* 18 CreateLinkFromFile */ - OLE_COPYFROMLNK, /* 19 CopyFromLink(auto reconnect) */ - OLE_CREATEFROMFILE, /* 20 CreateFromFile */ - OLE_CREATEINVISIBLE /* 21 CreateInvisible */ -} OLE_RELEASE_METHOD; - -/* rendering options */ -typedef enum -{ - olerender_none, - olerender_draw, - olerender_format -} OLEOPT_RENDER; - -/* standard clipboard format type */ -typedef WORD OLECLIPFORMAT; - -/* Link update options */ -typedef enum -{ - oleupdate_always, - oleupdate_onsave, -#ifdef OLE_INTERNAL - oleupdate_oncall, - oleupdate_onclose -#else - oleupdate_oncall -#endif /* OLE_INTERNAL */ -} OLEOPT_UPDATE; - -typedef HANDLE HOBJECT; -typedef LONG_PTR LHSERVER; -typedef LONG_PTR LHCLIENTDOC; -typedef LONG_PTR LHSERVERDOC; - -typedef struct _OLEOBJECT FAR* LPOLEOBJECT; -typedef struct _OLESTREAM FAR* LPOLESTREAM; -typedef struct _OLECLIENT FAR* LPOLECLIENT; - - -/* object method table definitions. */ -typedef struct _OLEOBJECTVTBL -{ - void FAR* (CALLBACK* QueryProtocol) (LPOLEOBJECT, OLE_LPCSTR); - OLESTATUS (CALLBACK* Release) (LPOLEOBJECT); - OLESTATUS (CALLBACK* Show) (LPOLEOBJECT, BOOL); - OLESTATUS (CALLBACK* DoVerb) (LPOLEOBJECT, UINT, BOOL, BOOL); - OLESTATUS (CALLBACK* GetData) (LPOLEOBJECT, OLECLIPFORMAT, HANDLE FAR*); - OLESTATUS (CALLBACK* SetData) (LPOLEOBJECT, OLECLIPFORMAT, HANDLE); - OLESTATUS (CALLBACK* SetTargetDevice) (LPOLEOBJECT, HGLOBAL); - OLESTATUS (CALLBACK* SetBounds) (LPOLEOBJECT, OLE_CONST RECT FAR*); - OLECLIPFORMAT (CALLBACK* EnumFormats) (LPOLEOBJECT, OLECLIPFORMAT); - OLESTATUS (CALLBACK* SetColorScheme) (LPOLEOBJECT, OLE_CONST LOGPALETTE FAR*); - /* Server has to implement only the above methods. */ - -#ifndef SERVERONLY - /* Extra methods required for client. */ - OLESTATUS (CALLBACK* Delete) (LPOLEOBJECT); - OLESTATUS (CALLBACK* SetHostNames) (LPOLEOBJECT, OLE_LPCSTR, OLE_LPCSTR); - OLESTATUS (CALLBACK* SaveToStream) (LPOLEOBJECT, LPOLESTREAM); - OLESTATUS (CALLBACK* Clone) (LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR, LPOLEOBJECT FAR*); - OLESTATUS (CALLBACK* CopyFromLink) (LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR, LPOLEOBJECT FAR*); - OLESTATUS (CALLBACK* Equal) (LPOLEOBJECT, LPOLEOBJECT); - OLESTATUS (CALLBACK* CopyToClipboard) (LPOLEOBJECT); - OLESTATUS (CALLBACK* Draw) (LPOLEOBJECT, HDC, OLE_CONST RECT FAR*, OLE_CONST RECT FAR*, HDC); - OLESTATUS (CALLBACK* Activate) (LPOLEOBJECT, UINT, BOOL, BOOL, HWND, OLE_CONST RECT FAR*); - OLESTATUS (CALLBACK* Execute) (LPOLEOBJECT, HGLOBAL, UINT); - OLESTATUS (CALLBACK* Close) (LPOLEOBJECT); - OLESTATUS (CALLBACK* Update) (LPOLEOBJECT); - OLESTATUS (CALLBACK* Reconnect) (LPOLEOBJECT); - - OLESTATUS (CALLBACK* ObjectConvert) (LPOLEOBJECT, OLE_LPCSTR, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR, LPOLEOBJECT FAR*); - OLESTATUS (CALLBACK* GetLinkUpdateOptions) (LPOLEOBJECT, OLEOPT_UPDATE FAR*); - OLESTATUS (CALLBACK* SetLinkUpdateOptions) (LPOLEOBJECT, OLEOPT_UPDATE); - - OLESTATUS (CALLBACK* Rename) (LPOLEOBJECT, OLE_LPCSTR); - OLESTATUS (CALLBACK* QueryName) (LPOLEOBJECT, LPSTR, UINT FAR*); - - OLESTATUS (CALLBACK* QueryType) (LPOLEOBJECT, LONG FAR*); - OLESTATUS (CALLBACK* QueryBounds) (LPOLEOBJECT, RECT FAR*); - OLESTATUS (CALLBACK* QuerySize) (LPOLEOBJECT, DWORD FAR*); - OLESTATUS (CALLBACK* QueryOpen) (LPOLEOBJECT); - OLESTATUS (CALLBACK* QueryOutOfDate) (LPOLEOBJECT); - - OLESTATUS (CALLBACK* QueryReleaseStatus) (LPOLEOBJECT); - OLESTATUS (CALLBACK* QueryReleaseError) (LPOLEOBJECT); - OLE_RELEASE_METHOD (CALLBACK* QueryReleaseMethod)(LPOLEOBJECT); - - OLESTATUS (CALLBACK* RequestData) (LPOLEOBJECT, OLECLIPFORMAT); - OLESTATUS (CALLBACK* ObjectLong) (LPOLEOBJECT, UINT, LONG FAR*); - -/* This method is internal only */ - OLESTATUS (CALLBACK* ChangeData) (LPOLEOBJECT, HANDLE, LPOLECLIENT, BOOL); -#endif /* !SERVERONLY */ -} OLEOBJECTVTBL; -typedef OLEOBJECTVTBL FAR* LPOLEOBJECTVTBL; - -#ifndef OLE_INTERNAL -typedef struct _OLEOBJECT -{ - LPOLEOBJECTVTBL lpvtbl; -} OLEOBJECT; -#endif - -/* ole client definitions */ -typedef struct _OLECLIENTVTBL -{ - int (CALLBACK* CallBack)(LPOLECLIENT, OLE_NOTIFICATION, LPOLEOBJECT); -} OLECLIENTVTBL; - -typedef OLECLIENTVTBL FAR* LPOLECLIENTVTBL; - -typedef struct _OLECLIENT -{ - LPOLECLIENTVTBL lpvtbl; -} OLECLIENT; - -/* Stream definitions */ -typedef struct _OLESTREAMVTBL -{ - DWORD (CALLBACK* Get)(LPOLESTREAM, void FAR*, DWORD); - DWORD (CALLBACK* Put)(LPOLESTREAM, OLE_CONST void FAR*, DWORD); -} OLESTREAMVTBL; -typedef OLESTREAMVTBL FAR* LPOLESTREAMVTBL; - -typedef struct _OLESTREAM -{ - LPOLESTREAMVTBL lpstbl; -} OLESTREAM; - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -/* Public Function Prototypes */ -OLESTATUS WINAPI OleDelete(LPOLEOBJECT); -OLESTATUS WINAPI OleRelease(LPOLEOBJECT); -OLESTATUS WINAPI OleSaveToStream(LPOLEOBJECT, LPOLESTREAM); -OLESTATUS WINAPI OleEqual(LPOLEOBJECT, LPOLEOBJECT ); -OLESTATUS WINAPI OleCopyToClipboard(LPOLEOBJECT); -OLESTATUS WINAPI OleSetHostNames(LPOLEOBJECT, LPCSTR, LPCSTR); -OLESTATUS WINAPI OleSetTargetDevice(LPOLEOBJECT, HGLOBAL); -OLESTATUS WINAPI OleSetBounds(LPOLEOBJECT, const RECT FAR*); -OLESTATUS WINAPI OleSetColorScheme(LPOLEOBJECT, const LOGPALETTE FAR*); -OLESTATUS WINAPI OleQueryBounds(LPOLEOBJECT, RECT FAR*); -OLESTATUS WINAPI OleQuerySize(LPOLEOBJECT, DWORD FAR*); -OLESTATUS WINAPI OleDraw(LPOLEOBJECT, HDC, const RECT FAR*, const RECT FAR*, HDC); -OLESTATUS WINAPI OleQueryOpen(LPOLEOBJECT); -OLESTATUS WINAPI OleActivate(LPOLEOBJECT, UINT, BOOL, BOOL, HWND, const RECT FAR*); -OLESTATUS WINAPI OleExecute(LPOLEOBJECT, HGLOBAL, UINT); -OLESTATUS WINAPI OleClose(LPOLEOBJECT); -OLESTATUS WINAPI OleUpdate(LPOLEOBJECT); -OLESTATUS WINAPI OleReconnect(LPOLEOBJECT); -OLESTATUS WINAPI OleGetLinkUpdateOptions(LPOLEOBJECT, OLEOPT_UPDATE FAR*); -OLESTATUS WINAPI OleSetLinkUpdateOptions(LPOLEOBJECT, OLEOPT_UPDATE); -void FAR* WINAPI OleQueryProtocol(LPOLEOBJECT, LPCSTR); - -/* Routines related to asynchronous operations. */ -OLESTATUS WINAPI OleQueryReleaseStatus(LPOLEOBJECT); -OLESTATUS WINAPI OleQueryReleaseError(LPOLEOBJECT); -OLE_RELEASE_METHOD WINAPI OleQueryReleaseMethod(LPOLEOBJECT); - -OLESTATUS WINAPI OleQueryType(LPOLEOBJECT, LONG FAR*); - -/* LOWORD is major version, HIWORD is minor version */ -DWORD WINAPI OleQueryClientVersion(void); -DWORD WINAPI OleQueryServerVersion(void); - -/* Converting to format (as in clipboard): */ -OLECLIPFORMAT WINAPI OleEnumFormats(LPOLEOBJECT, OLECLIPFORMAT); -OLESTATUS WINAPI OleGetData(LPOLEOBJECT, OLECLIPFORMAT, HANDLE FAR*); -OLESTATUS WINAPI OleSetData(LPOLEOBJECT, OLECLIPFORMAT, HANDLE); -OLESTATUS WINAPI OleQueryOutOfDate(LPOLEOBJECT); -OLESTATUS WINAPI OleRequestData(LPOLEOBJECT, OLECLIPFORMAT); - -/* Query apis for creation from clipboard */ -OLESTATUS WINAPI OleQueryLinkFromClip(LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT); -OLESTATUS WINAPI OleQueryCreateFromClip(LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT); - -/* Object creation functions */ -OLESTATUS WINAPI OleCreateFromClip(LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); -OLESTATUS WINAPI OleCreateLinkFromClip(LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); -OLESTATUS WINAPI OleCreateFromFile(LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); -OLESTATUS WINAPI OleCreateLinkFromFile(LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); -OLESTATUS WINAPI OleLoadFromStream(LPOLESTREAM, LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*); -OLESTATUS WINAPI OleCreate(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); -OLESTATUS WINAPI OleCreateInvisible(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT, BOOL); -OLESTATUS WINAPI OleCreateFromTemplate(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); -OLESTATUS WINAPI OleClone(LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*); -OLESTATUS WINAPI OleCopyFromLink(LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*); -OLESTATUS WINAPI OleObjectConvert(LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*); -OLESTATUS WINAPI OleRename(LPOLEOBJECT, LPCSTR); -_Check_return_ OLESTATUS WINAPI OleQueryName(LPOLEOBJECT lpobj, _Out_writes_bytes_(*lpcbBuf) LPSTR lpBuf, UINT FAR* lpcbBuf); -OLESTATUS WINAPI OleRevokeObject(LPOLECLIENT); -BOOL WINAPI OleIsDcMeta(HDC); - -/* client document API */ -OLESTATUS WINAPI OleRegisterClientDoc(LPCSTR, LPCSTR, LONG, LHCLIENTDOC FAR*); -OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC); -OLESTATUS WINAPI OleRenameClientDoc(LHCLIENTDOC, LPCSTR); -OLESTATUS WINAPI OleRevertClientDoc(LHCLIENTDOC); -OLESTATUS WINAPI OleSavedClientDoc(LHCLIENTDOC); -OLESTATUS WINAPI OleEnumObjects(LHCLIENTDOC, LPOLEOBJECT FAR*); - -/* server usage definitions */ -typedef enum { - OLE_SERVER_MULTI, /* multiple instances */ - OLE_SERVER_SINGLE /* single instance(multiple document) */ -} OLE_SERVER_USE; - -/* Server API */ -typedef struct _OLESERVER FAR* LPOLESERVER; - -OLESTATUS WINAPI OleRegisterServer(LPCSTR, LPOLESERVER, LHSERVER FAR*, HINSTANCE, OLE_SERVER_USE); -OLESTATUS WINAPI OleRevokeServer(LHSERVER); -OLESTATUS WINAPI OleBlockServer(LHSERVER); -OLESTATUS WINAPI OleUnblockServer(LHSERVER, BOOL FAR*); - -/* APIs to keep server open */ -OLESTATUS WINAPI OleLockServer(LPOLEOBJECT, LHSERVER FAR*); -OLESTATUS WINAPI OleUnlockServer(LHSERVER); - -/* Server document API */ - -typedef struct _OLESERVERDOC FAR* LPOLESERVERDOC; - -OLESTATUS WINAPI OleRegisterServerDoc(LHSERVER, LPCSTR, LPOLESERVERDOC, LHSERVERDOC FAR*); -OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC); -OLESTATUS WINAPI OleRenameServerDoc(LHSERVERDOC, LPCSTR); -OLESTATUS WINAPI OleRevertServerDoc(LHSERVERDOC); -OLESTATUS WINAPI OleSavedServerDoc(LHSERVERDOC); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -typedef struct _OLESERVERVTBL -{ - OLESTATUS (CALLBACK* Open) (LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, LPOLESERVERDOC FAR*); - /* long handle to doc(privtate to DLL) */ - /* lp to OLESERVER */ - /* document name */ - /* place holder for returning oledoc. */ - - OLESTATUS (CALLBACK* Create)(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, LPOLESERVERDOC FAR*); - /* long handle to doc(privtate to DLL) */ - /* lp to OLESERVER */ - /* lp class name */ - /* lp doc name */ - /* place holder for returning oledoc. */ - - OLESTATUS (CALLBACK* CreateFromTemplate)(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, OLE_LPCSTR, LPOLESERVERDOC FAR*); - /* long handle to doc(privtate to DLL) */ - /* lp to OLESERVER */ - /* lp class name */ - /* lp doc name */ - /* lp template name */ - /* place holder for returning oledoc. */ - - OLESTATUS (CALLBACK* Edit) (LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, LPOLESERVERDOC FAR*); - /* long handle to doc(privtate to DLL) */ - /* lp to OLESERVER */ - /* lp class name */ - /* lp doc name */ - /* place holder for returning oledoc. */ - - _Analysis_noreturn_ - OLESTATUS (CALLBACK* Exit) (LPOLESERVER); - /* lp OLESERVER */ - - OLESTATUS (CALLBACK* Release) (LPOLESERVER); - /* lp OLESERVER */ - - OLESTATUS (CALLBACK* Execute)(LPOLESERVER, HGLOBAL); - /* lp OLESERVER */ - /* handle to command strings */ -} OLESERVERVTBL; -typedef OLESERVERVTBL FAR* LPOLESERVERVTBL; - -typedef struct _OLESERVER -{ - LPOLESERVERVTBL lpvtbl; -} OLESERVER; - -typedef struct _OLESERVERDOCVTBL -{ - OLESTATUS (CALLBACK* Save) (LPOLESERVERDOC); - OLESTATUS (CALLBACK* Close) (LPOLESERVERDOC); - OLESTATUS (CALLBACK* SetHostNames)(LPOLESERVERDOC, OLE_LPCSTR, OLE_LPCSTR); - OLESTATUS (CALLBACK* SetDocDimensions)(LPOLESERVERDOC, OLE_CONST RECT FAR*); - OLESTATUS (CALLBACK* GetObject) (LPOLESERVERDOC, OLE_LPCSTR, LPOLEOBJECT FAR*, LPOLECLIENT); - OLESTATUS (CALLBACK* Release) (LPOLESERVERDOC); - OLESTATUS (CALLBACK* SetColorScheme)(LPOLESERVERDOC, OLE_CONST LOGPALETTE FAR*); - OLESTATUS (CALLBACK* Execute) (LPOLESERVERDOC, HGLOBAL); -} OLESERVERDOCVTBL; -typedef OLESERVERDOCVTBL FAR* LPOLESERVERDOCVTBL; - -typedef struct _OLESERVERDOC -{ - LPOLESERVERDOCVTBL lpvtbl; -} OLESERVERDOC; - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#ifdef WIN16 -#include -#endif - -#endif /* !_INC_OLE */ diff --git a/src/custom/winsdk/include/um/oleidl.h b/src/custom/winsdk/include/um/oleidl.h deleted file mode 100644 index ebdd11d..0000000 --- a/src/custom/winsdk/include/um/oleidl.h +++ /dev/null @@ -1,4214 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __oleidl_h__ -#define __oleidl_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IOleAdviseHolder_FWD_DEFINED__ -#define __IOleAdviseHolder_FWD_DEFINED__ -typedef interface IOleAdviseHolder IOleAdviseHolder; - -#endif /* __IOleAdviseHolder_FWD_DEFINED__ */ - - -#ifndef __IOleCache_FWD_DEFINED__ -#define __IOleCache_FWD_DEFINED__ -typedef interface IOleCache IOleCache; - -#endif /* __IOleCache_FWD_DEFINED__ */ - - -#ifndef __IOleCache2_FWD_DEFINED__ -#define __IOleCache2_FWD_DEFINED__ -typedef interface IOleCache2 IOleCache2; - -#endif /* __IOleCache2_FWD_DEFINED__ */ - - -#ifndef __IOleCacheControl_FWD_DEFINED__ -#define __IOleCacheControl_FWD_DEFINED__ -typedef interface IOleCacheControl IOleCacheControl; - -#endif /* __IOleCacheControl_FWD_DEFINED__ */ - - -#ifndef __IParseDisplayName_FWD_DEFINED__ -#define __IParseDisplayName_FWD_DEFINED__ -typedef interface IParseDisplayName IParseDisplayName; - -#endif /* __IParseDisplayName_FWD_DEFINED__ */ - - -#ifndef __IOleContainer_FWD_DEFINED__ -#define __IOleContainer_FWD_DEFINED__ -typedef interface IOleContainer IOleContainer; - -#endif /* __IOleContainer_FWD_DEFINED__ */ - - -#ifndef __IOleClientSite_FWD_DEFINED__ -#define __IOleClientSite_FWD_DEFINED__ -typedef interface IOleClientSite IOleClientSite; - -#endif /* __IOleClientSite_FWD_DEFINED__ */ - - -#ifndef __IOleObject_FWD_DEFINED__ -#define __IOleObject_FWD_DEFINED__ -typedef interface IOleObject IOleObject; - -#endif /* __IOleObject_FWD_DEFINED__ */ - - -#ifndef __IOleWindow_FWD_DEFINED__ -#define __IOleWindow_FWD_DEFINED__ -typedef interface IOleWindow IOleWindow; - -#endif /* __IOleWindow_FWD_DEFINED__ */ - - -#ifndef __IOleLink_FWD_DEFINED__ -#define __IOleLink_FWD_DEFINED__ -typedef interface IOleLink IOleLink; - -#endif /* __IOleLink_FWD_DEFINED__ */ - - -#ifndef __IOleItemContainer_FWD_DEFINED__ -#define __IOleItemContainer_FWD_DEFINED__ -typedef interface IOleItemContainer IOleItemContainer; - -#endif /* __IOleItemContainer_FWD_DEFINED__ */ - - -#ifndef __IOleInPlaceUIWindow_FWD_DEFINED__ -#define __IOleInPlaceUIWindow_FWD_DEFINED__ -typedef interface IOleInPlaceUIWindow IOleInPlaceUIWindow; - -#endif /* __IOleInPlaceUIWindow_FWD_DEFINED__ */ - - -#ifndef __IOleInPlaceActiveObject_FWD_DEFINED__ -#define __IOleInPlaceActiveObject_FWD_DEFINED__ -typedef interface IOleInPlaceActiveObject IOleInPlaceActiveObject; - -#endif /* __IOleInPlaceActiveObject_FWD_DEFINED__ */ - - -#ifndef __IOleInPlaceFrame_FWD_DEFINED__ -#define __IOleInPlaceFrame_FWD_DEFINED__ -typedef interface IOleInPlaceFrame IOleInPlaceFrame; - -#endif /* __IOleInPlaceFrame_FWD_DEFINED__ */ - - -#ifndef __IOleInPlaceObject_FWD_DEFINED__ -#define __IOleInPlaceObject_FWD_DEFINED__ -typedef interface IOleInPlaceObject IOleInPlaceObject; - -#endif /* __IOleInPlaceObject_FWD_DEFINED__ */ - - -#ifndef __IOleInPlaceSite_FWD_DEFINED__ -#define __IOleInPlaceSite_FWD_DEFINED__ -typedef interface IOleInPlaceSite IOleInPlaceSite; - -#endif /* __IOleInPlaceSite_FWD_DEFINED__ */ - - -#ifndef __IContinue_FWD_DEFINED__ -#define __IContinue_FWD_DEFINED__ -typedef interface IContinue IContinue; - -#endif /* __IContinue_FWD_DEFINED__ */ - - -#ifndef __IViewObject_FWD_DEFINED__ -#define __IViewObject_FWD_DEFINED__ -typedef interface IViewObject IViewObject; - -#endif /* __IViewObject_FWD_DEFINED__ */ - - -#ifndef __IViewObject2_FWD_DEFINED__ -#define __IViewObject2_FWD_DEFINED__ -typedef interface IViewObject2 IViewObject2; - -#endif /* __IViewObject2_FWD_DEFINED__ */ - - -#ifndef __IDropSource_FWD_DEFINED__ -#define __IDropSource_FWD_DEFINED__ -typedef interface IDropSource IDropSource; - -#endif /* __IDropSource_FWD_DEFINED__ */ - - -#ifndef __IDropTarget_FWD_DEFINED__ -#define __IDropTarget_FWD_DEFINED__ -typedef interface IDropTarget IDropTarget; - -#endif /* __IDropTarget_FWD_DEFINED__ */ - - -#ifndef __IDropSourceNotify_FWD_DEFINED__ -#define __IDropSourceNotify_FWD_DEFINED__ -typedef interface IDropSourceNotify IDropSourceNotify; - -#endif /* __IDropSourceNotify_FWD_DEFINED__ */ - - -#ifndef __IEnterpriseDropTarget_FWD_DEFINED__ -#define __IEnterpriseDropTarget_FWD_DEFINED__ -typedef interface IEnterpriseDropTarget IEnterpriseDropTarget; - -#endif /* __IEnterpriseDropTarget_FWD_DEFINED__ */ - - -#ifndef __IEnumOLEVERB_FWD_DEFINED__ -#define __IEnumOLEVERB_FWD_DEFINED__ -typedef interface IEnumOLEVERB IEnumOLEVERB; - -#endif /* __IEnumOLEVERB_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "objidl.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_oleidl_0000_0000 */ -/* [local] */ - -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -//-------------------------------------------------------------------------- -#if ( _MSC_VER >= 1020 ) -#pragma once -#endif -#include -#if _MSC_VER >= 1200 -#pragma warning(push) -#pragma warning(disable:4820) /* padding added after data member */ -#endif -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - - - -extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0000_v0_0_s_ifspec; - -#ifndef __IOleAdviseHolder_INTERFACE_DEFINED__ -#define __IOleAdviseHolder_INTERFACE_DEFINED__ - -/* interface IOleAdviseHolder */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IOleAdviseHolder *LPOLEADVISEHOLDER; - - -EXTERN_C const IID IID_IOleAdviseHolder; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000111-0000-0000-C000-000000000046") - IOleAdviseHolder : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Advise( - /* [annotation][unique][in] */ - _In_ IAdviseSink *pAdvise, - /* [annotation][out] */ - _Out_ DWORD *pdwConnection) = 0; - - virtual HRESULT STDMETHODCALLTYPE Unadvise( - /* [in] */ DWORD dwConnection) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumAdvise( - /* [annotation][out] */ - _Outptr_ IEnumSTATDATA **ppenumAdvise) = 0; - - virtual HRESULT STDMETHODCALLTYPE SendOnRename( - /* [annotation][unique][in] */ - _In_ IMoniker *pmk) = 0; - - virtual HRESULT STDMETHODCALLTYPE SendOnSave( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SendOnClose( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleAdviseHolderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IOleAdviseHolder * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IOleAdviseHolder * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IOleAdviseHolder * This); - - HRESULT ( STDMETHODCALLTYPE *Advise )( - IOleAdviseHolder * This, - /* [annotation][unique][in] */ - _In_ IAdviseSink *pAdvise, - /* [annotation][out] */ - _Out_ DWORD *pdwConnection); - - HRESULT ( STDMETHODCALLTYPE *Unadvise )( - IOleAdviseHolder * This, - /* [in] */ DWORD dwConnection); - - HRESULT ( STDMETHODCALLTYPE *EnumAdvise )( - IOleAdviseHolder * This, - /* [annotation][out] */ - _Outptr_ IEnumSTATDATA **ppenumAdvise); - - HRESULT ( STDMETHODCALLTYPE *SendOnRename )( - IOleAdviseHolder * This, - /* [annotation][unique][in] */ - _In_ IMoniker *pmk); - - HRESULT ( STDMETHODCALLTYPE *SendOnSave )( - IOleAdviseHolder * This); - - HRESULT ( STDMETHODCALLTYPE *SendOnClose )( - IOleAdviseHolder * This); - - END_INTERFACE - } IOleAdviseHolderVtbl; - - interface IOleAdviseHolder - { - CONST_VTBL struct IOleAdviseHolderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleAdviseHolder_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleAdviseHolder_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleAdviseHolder_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleAdviseHolder_Advise(This,pAdvise,pdwConnection) \ - ( (This)->lpVtbl -> Advise(This,pAdvise,pdwConnection) ) - -#define IOleAdviseHolder_Unadvise(This,dwConnection) \ - ( (This)->lpVtbl -> Unadvise(This,dwConnection) ) - -#define IOleAdviseHolder_EnumAdvise(This,ppenumAdvise) \ - ( (This)->lpVtbl -> EnumAdvise(This,ppenumAdvise) ) - -#define IOleAdviseHolder_SendOnRename(This,pmk) \ - ( (This)->lpVtbl -> SendOnRename(This,pmk) ) - -#define IOleAdviseHolder_SendOnSave(This) \ - ( (This)->lpVtbl -> SendOnSave(This) ) - -#define IOleAdviseHolder_SendOnClose(This) \ - ( (This)->lpVtbl -> SendOnClose(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleAdviseHolder_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_oleidl_0000_0001 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0001_v0_0_s_ifspec; - -#ifndef __IOleCache_INTERFACE_DEFINED__ -#define __IOleCache_INTERFACE_DEFINED__ - -/* interface IOleCache */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleCache *LPOLECACHE; - - -EXTERN_C const IID IID_IOleCache; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000011e-0000-0000-C000-000000000046") - IOleCache : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Cache( - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc, - /* [in] */ DWORD advf, - /* [out] */ __RPC__out DWORD *pdwConnection) = 0; - - virtual HRESULT STDMETHODCALLTYPE Uncache( - /* [in] */ DWORD dwConnection) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumCache( - /* [out] */ __RPC__deref_out_opt IEnumSTATDATA **ppenumSTATDATA) = 0; - - virtual HRESULT STDMETHODCALLTYPE InitCache( - /* [unique][in] */ __RPC__in_opt IDataObject *pDataObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetData( - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc, - /* [unique][in] */ __RPC__in_opt STGMEDIUM *pmedium, - /* [in] */ BOOL fRelease) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleCacheVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleCache * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleCache * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleCache * This); - - HRESULT ( STDMETHODCALLTYPE *Cache )( - __RPC__in IOleCache * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc, - /* [in] */ DWORD advf, - /* [out] */ __RPC__out DWORD *pdwConnection); - - HRESULT ( STDMETHODCALLTYPE *Uncache )( - __RPC__in IOleCache * This, - /* [in] */ DWORD dwConnection); - - HRESULT ( STDMETHODCALLTYPE *EnumCache )( - __RPC__in IOleCache * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATDATA **ppenumSTATDATA); - - HRESULT ( STDMETHODCALLTYPE *InitCache )( - __RPC__in IOleCache * This, - /* [unique][in] */ __RPC__in_opt IDataObject *pDataObject); - - HRESULT ( STDMETHODCALLTYPE *SetData )( - __RPC__in IOleCache * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc, - /* [unique][in] */ __RPC__in_opt STGMEDIUM *pmedium, - /* [in] */ BOOL fRelease); - - END_INTERFACE - } IOleCacheVtbl; - - interface IOleCache - { - CONST_VTBL struct IOleCacheVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleCache_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleCache_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleCache_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleCache_Cache(This,pformatetc,advf,pdwConnection) \ - ( (This)->lpVtbl -> Cache(This,pformatetc,advf,pdwConnection) ) - -#define IOleCache_Uncache(This,dwConnection) \ - ( (This)->lpVtbl -> Uncache(This,dwConnection) ) - -#define IOleCache_EnumCache(This,ppenumSTATDATA) \ - ( (This)->lpVtbl -> EnumCache(This,ppenumSTATDATA) ) - -#define IOleCache_InitCache(This,pDataObject) \ - ( (This)->lpVtbl -> InitCache(This,pDataObject) ) - -#define IOleCache_SetData(This,pformatetc,pmedium,fRelease) \ - ( (This)->lpVtbl -> SetData(This,pformatetc,pmedium,fRelease) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleCache_INTERFACE_DEFINED__ */ - - -#ifndef __IOleCache2_INTERFACE_DEFINED__ -#define __IOleCache2_INTERFACE_DEFINED__ - -/* interface IOleCache2 */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleCache2 *LPOLECACHE2; - -#define UPDFCACHE_NODATACACHE ( 0x1 ) - -#define UPDFCACHE_ONSAVECACHE ( 0x2 ) - -#define UPDFCACHE_ONSTOPCACHE ( 0x4 ) - -#define UPDFCACHE_NORMALCACHE ( 0x8 ) - -#define UPDFCACHE_IFBLANK ( 0x10 ) - -#define UPDFCACHE_ONLYIFBLANK ( 0x80000000 ) - -#define UPDFCACHE_IFBLANKORONSAVECACHE ( ( UPDFCACHE_IFBLANK | UPDFCACHE_ONSAVECACHE ) ) - -#define UPDFCACHE_ALL ( ( DWORD )~UPDFCACHE_ONLYIFBLANK ) - -#define UPDFCACHE_ALLBUTNODATACACHE ( ( UPDFCACHE_ALL & ( DWORD )~UPDFCACHE_NODATACACHE ) ) - -typedef /* [v1_enum] */ -enum tagDISCARDCACHE - { - DISCARDCACHE_SAVEIFDIRTY = 0, - DISCARDCACHE_NOSAVE = 1 - } DISCARDCACHE; - - -EXTERN_C const IID IID_IOleCache2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000128-0000-0000-C000-000000000046") - IOleCache2 : public IOleCache - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE UpdateCache( - /* [annotation][in] */ - _In_ LPDATAOBJECT pDataObject, - /* [annotation][in] */ - _In_ DWORD grfUpdf, - /* [annotation][in] */ - _Reserved_ LPVOID pReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE DiscardCache( - /* [in] */ DWORD dwDiscardOptions) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleCache2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleCache2 * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleCache2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleCache2 * This); - - HRESULT ( STDMETHODCALLTYPE *Cache )( - __RPC__in IOleCache2 * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc, - /* [in] */ DWORD advf, - /* [out] */ __RPC__out DWORD *pdwConnection); - - HRESULT ( STDMETHODCALLTYPE *Uncache )( - __RPC__in IOleCache2 * This, - /* [in] */ DWORD dwConnection); - - HRESULT ( STDMETHODCALLTYPE *EnumCache )( - __RPC__in IOleCache2 * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATDATA **ppenumSTATDATA); - - HRESULT ( STDMETHODCALLTYPE *InitCache )( - __RPC__in IOleCache2 * This, - /* [unique][in] */ __RPC__in_opt IDataObject *pDataObject); - - HRESULT ( STDMETHODCALLTYPE *SetData )( - __RPC__in IOleCache2 * This, - /* [unique][in] */ __RPC__in_opt FORMATETC *pformatetc, - /* [unique][in] */ __RPC__in_opt STGMEDIUM *pmedium, - /* [in] */ BOOL fRelease); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *UpdateCache )( - IOleCache2 * This, - /* [annotation][in] */ - _In_ LPDATAOBJECT pDataObject, - /* [annotation][in] */ - _In_ DWORD grfUpdf, - /* [annotation][in] */ - _Reserved_ LPVOID pReserved); - - HRESULT ( STDMETHODCALLTYPE *DiscardCache )( - __RPC__in IOleCache2 * This, - /* [in] */ DWORD dwDiscardOptions); - - END_INTERFACE - } IOleCache2Vtbl; - - interface IOleCache2 - { - CONST_VTBL struct IOleCache2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleCache2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleCache2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleCache2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleCache2_Cache(This,pformatetc,advf,pdwConnection) \ - ( (This)->lpVtbl -> Cache(This,pformatetc,advf,pdwConnection) ) - -#define IOleCache2_Uncache(This,dwConnection) \ - ( (This)->lpVtbl -> Uncache(This,dwConnection) ) - -#define IOleCache2_EnumCache(This,ppenumSTATDATA) \ - ( (This)->lpVtbl -> EnumCache(This,ppenumSTATDATA) ) - -#define IOleCache2_InitCache(This,pDataObject) \ - ( (This)->lpVtbl -> InitCache(This,pDataObject) ) - -#define IOleCache2_SetData(This,pformatetc,pmedium,fRelease) \ - ( (This)->lpVtbl -> SetData(This,pformatetc,pmedium,fRelease) ) - - -#define IOleCache2_UpdateCache(This,pDataObject,grfUpdf,pReserved) \ - ( (This)->lpVtbl -> UpdateCache(This,pDataObject,grfUpdf,pReserved) ) - -#define IOleCache2_DiscardCache(This,dwDiscardOptions) \ - ( (This)->lpVtbl -> DiscardCache(This,dwDiscardOptions) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IOleCache2_RemoteUpdateCache_Proxy( - __RPC__in IOleCache2 * This, - /* [in] */ __RPC__in_opt LPDATAOBJECT pDataObject, - /* [in] */ DWORD grfUpdf, - /* [in] */ LONG_PTR pReserved); - - -void __RPC_STUB IOleCache2_RemoteUpdateCache_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IOleCache2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_oleidl_0000_0003 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0003_v0_0_s_ifspec; - -#ifndef __IOleCacheControl_INTERFACE_DEFINED__ -#define __IOleCacheControl_INTERFACE_DEFINED__ - -/* interface IOleCacheControl */ -/* [uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleCacheControl *LPOLECACHECONTROL; - - -EXTERN_C const IID IID_IOleCacheControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000129-0000-0000-C000-000000000046") - IOleCacheControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE OnRun( - __RPC__in_opt LPDATAOBJECT pDataObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnStop( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleCacheControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleCacheControl * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleCacheControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleCacheControl * This); - - HRESULT ( STDMETHODCALLTYPE *OnRun )( - __RPC__in IOleCacheControl * This, - __RPC__in_opt LPDATAOBJECT pDataObject); - - HRESULT ( STDMETHODCALLTYPE *OnStop )( - __RPC__in IOleCacheControl * This); - - END_INTERFACE - } IOleCacheControlVtbl; - - interface IOleCacheControl - { - CONST_VTBL struct IOleCacheControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleCacheControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleCacheControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleCacheControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleCacheControl_OnRun(This,pDataObject) \ - ( (This)->lpVtbl -> OnRun(This,pDataObject) ) - -#define IOleCacheControl_OnStop(This) \ - ( (This)->lpVtbl -> OnStop(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleCacheControl_INTERFACE_DEFINED__ */ - - -#ifndef __IParseDisplayName_INTERFACE_DEFINED__ -#define __IParseDisplayName_INTERFACE_DEFINED__ - -/* interface IParseDisplayName */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IParseDisplayName *LPPARSEDISPLAYNAME; - - -EXTERN_C const IID IID_IParseDisplayName; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000011a-0000-0000-C000-000000000046") - IParseDisplayName : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ParseDisplayName( - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [in] */ __RPC__in LPOLESTR pszDisplayName, - /* [out] */ __RPC__out ULONG *pchEaten, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmkOut) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IParseDisplayNameVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IParseDisplayName * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IParseDisplayName * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IParseDisplayName * This); - - HRESULT ( STDMETHODCALLTYPE *ParseDisplayName )( - __RPC__in IParseDisplayName * This, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [in] */ __RPC__in LPOLESTR pszDisplayName, - /* [out] */ __RPC__out ULONG *pchEaten, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmkOut); - - END_INTERFACE - } IParseDisplayNameVtbl; - - interface IParseDisplayName - { - CONST_VTBL struct IParseDisplayNameVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IParseDisplayName_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IParseDisplayName_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IParseDisplayName_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IParseDisplayName_ParseDisplayName(This,pbc,pszDisplayName,pchEaten,ppmkOut) \ - ( (This)->lpVtbl -> ParseDisplayName(This,pbc,pszDisplayName,pchEaten,ppmkOut) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IParseDisplayName_INTERFACE_DEFINED__ */ - - -#ifndef __IOleContainer_INTERFACE_DEFINED__ -#define __IOleContainer_INTERFACE_DEFINED__ - -/* interface IOleContainer */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleContainer *LPOLECONTAINER; - - -EXTERN_C const IID IID_IOleContainer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000011b-0000-0000-C000-000000000046") - IOleContainer : public IParseDisplayName - { - public: - virtual HRESULT STDMETHODCALLTYPE EnumObjects( - /* [in] */ DWORD grfFlags, - /* [out] */ __RPC__deref_out_opt IEnumUnknown **ppenum) = 0; - - virtual HRESULT STDMETHODCALLTYPE LockContainer( - /* [in] */ BOOL fLock) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleContainerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleContainer * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleContainer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleContainer * This); - - HRESULT ( STDMETHODCALLTYPE *ParseDisplayName )( - __RPC__in IOleContainer * This, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [in] */ __RPC__in LPOLESTR pszDisplayName, - /* [out] */ __RPC__out ULONG *pchEaten, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmkOut); - - HRESULT ( STDMETHODCALLTYPE *EnumObjects )( - __RPC__in IOleContainer * This, - /* [in] */ DWORD grfFlags, - /* [out] */ __RPC__deref_out_opt IEnumUnknown **ppenum); - - HRESULT ( STDMETHODCALLTYPE *LockContainer )( - __RPC__in IOleContainer * This, - /* [in] */ BOOL fLock); - - END_INTERFACE - } IOleContainerVtbl; - - interface IOleContainer - { - CONST_VTBL struct IOleContainerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleContainer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleContainer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleContainer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleContainer_ParseDisplayName(This,pbc,pszDisplayName,pchEaten,ppmkOut) \ - ( (This)->lpVtbl -> ParseDisplayName(This,pbc,pszDisplayName,pchEaten,ppmkOut) ) - - -#define IOleContainer_EnumObjects(This,grfFlags,ppenum) \ - ( (This)->lpVtbl -> EnumObjects(This,grfFlags,ppenum) ) - -#define IOleContainer_LockContainer(This,fLock) \ - ( (This)->lpVtbl -> LockContainer(This,fLock) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleContainer_INTERFACE_DEFINED__ */ - - -#ifndef __IOleClientSite_INTERFACE_DEFINED__ -#define __IOleClientSite_INTERFACE_DEFINED__ - -/* interface IOleClientSite */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleClientSite *LPOLECLIENTSITE; - - -EXTERN_C const IID IID_IOleClientSite; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000118-0000-0000-C000-000000000046") - IOleClientSite : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SaveObject( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMoniker( - /* [in] */ DWORD dwAssign, - /* [in] */ DWORD dwWhichMoniker, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmk) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetContainer( - /* [out] */ __RPC__deref_out_opt IOleContainer **ppContainer) = 0; - - virtual HRESULT STDMETHODCALLTYPE ShowObject( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnShowWindow( - /* [in] */ BOOL fShow) = 0; - - virtual HRESULT STDMETHODCALLTYPE RequestNewObjectLayout( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleClientSiteVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleClientSite * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleClientSite * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleClientSite * This); - - HRESULT ( STDMETHODCALLTYPE *SaveObject )( - __RPC__in IOleClientSite * This); - - HRESULT ( STDMETHODCALLTYPE *GetMoniker )( - __RPC__in IOleClientSite * This, - /* [in] */ DWORD dwAssign, - /* [in] */ DWORD dwWhichMoniker, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmk); - - HRESULT ( STDMETHODCALLTYPE *GetContainer )( - __RPC__in IOleClientSite * This, - /* [out] */ __RPC__deref_out_opt IOleContainer **ppContainer); - - HRESULT ( STDMETHODCALLTYPE *ShowObject )( - __RPC__in IOleClientSite * This); - - HRESULT ( STDMETHODCALLTYPE *OnShowWindow )( - __RPC__in IOleClientSite * This, - /* [in] */ BOOL fShow); - - HRESULT ( STDMETHODCALLTYPE *RequestNewObjectLayout )( - __RPC__in IOleClientSite * This); - - END_INTERFACE - } IOleClientSiteVtbl; - - interface IOleClientSite - { - CONST_VTBL struct IOleClientSiteVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleClientSite_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleClientSite_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleClientSite_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleClientSite_SaveObject(This) \ - ( (This)->lpVtbl -> SaveObject(This) ) - -#define IOleClientSite_GetMoniker(This,dwAssign,dwWhichMoniker,ppmk) \ - ( (This)->lpVtbl -> GetMoniker(This,dwAssign,dwWhichMoniker,ppmk) ) - -#define IOleClientSite_GetContainer(This,ppContainer) \ - ( (This)->lpVtbl -> GetContainer(This,ppContainer) ) - -#define IOleClientSite_ShowObject(This) \ - ( (This)->lpVtbl -> ShowObject(This) ) - -#define IOleClientSite_OnShowWindow(This,fShow) \ - ( (This)->lpVtbl -> OnShowWindow(This,fShow) ) - -#define IOleClientSite_RequestNewObjectLayout(This) \ - ( (This)->lpVtbl -> RequestNewObjectLayout(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleClientSite_INTERFACE_DEFINED__ */ - - -#ifndef __IOleObject_INTERFACE_DEFINED__ -#define __IOleObject_INTERFACE_DEFINED__ - -/* interface IOleObject */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleObject *LPOLEOBJECT; - -typedef -enum tagOLEGETMONIKER - { - OLEGETMONIKER_ONLYIFTHERE = 1, - OLEGETMONIKER_FORCEASSIGN = 2, - OLEGETMONIKER_UNASSIGN = 3, - OLEGETMONIKER_TEMPFORUSER = 4 - } OLEGETMONIKER; - -typedef -enum tagOLEWHICHMK - { - OLEWHICHMK_CONTAINER = 1, - OLEWHICHMK_OBJREL = 2, - OLEWHICHMK_OBJFULL = 3 - } OLEWHICHMK; - -typedef -enum tagUSERCLASSTYPE - { - USERCLASSTYPE_FULL = 1, - USERCLASSTYPE_SHORT = 2, - USERCLASSTYPE_APPNAME = 3 - } USERCLASSTYPE; - -typedef -enum tagOLEMISC - { - OLEMISC_RECOMPOSEONRESIZE = 0x1, - OLEMISC_ONLYICONIC = 0x2, - OLEMISC_INSERTNOTREPLACE = 0x4, - OLEMISC_STATIC = 0x8, - OLEMISC_CANTLINKINSIDE = 0x10, - OLEMISC_CANLINKBYOLE1 = 0x20, - OLEMISC_ISLINKOBJECT = 0x40, - OLEMISC_INSIDEOUT = 0x80, - OLEMISC_ACTIVATEWHENVISIBLE = 0x100, - OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x200, - OLEMISC_INVISIBLEATRUNTIME = 0x400, - OLEMISC_ALWAYSRUN = 0x800, - OLEMISC_ACTSLIKEBUTTON = 0x1000, - OLEMISC_ACTSLIKELABEL = 0x2000, - OLEMISC_NOUIACTIVATE = 0x4000, - OLEMISC_ALIGNABLE = 0x8000, - OLEMISC_SIMPLEFRAME = 0x10000, - OLEMISC_SETCLIENTSITEFIRST = 0x20000, - OLEMISC_IMEMODE = 0x40000, - OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x80000, - OLEMISC_WANTSTOMENUMERGE = 0x100000, - OLEMISC_SUPPORTSMULTILEVELUNDO = 0x200000 - } OLEMISC; - -typedef -enum tagOLECLOSE - { - OLECLOSE_SAVEIFDIRTY = 0, - OLECLOSE_NOSAVE = 1, - OLECLOSE_PROMPTSAVE = 2 - } OLECLOSE; - - -EXTERN_C const IID IID_IOleObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000112-0000-0000-C000-000000000046") - IOleObject : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetClientSite( - /* [unique][in] */ __RPC__in_opt IOleClientSite *pClientSite) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClientSite( - /* [out] */ __RPC__deref_out_opt IOleClientSite **ppClientSite) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetHostNames( - /* [in] */ __RPC__in LPCOLESTR szContainerApp, - /* [unique][in] */ __RPC__in_opt LPCOLESTR szContainerObj) = 0; - - virtual HRESULT STDMETHODCALLTYPE Close( - /* [in] */ DWORD dwSaveOption) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetMoniker( - /* [in] */ DWORD dwWhichMoniker, - /* [unique][in] */ __RPC__in_opt IMoniker *pmk) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMoniker( - /* [in] */ DWORD dwAssign, - /* [in] */ DWORD dwWhichMoniker, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmk) = 0; - - virtual HRESULT STDMETHODCALLTYPE InitFromData( - /* [unique][in] */ __RPC__in_opt IDataObject *pDataObject, - /* [in] */ BOOL fCreation, - /* [in] */ DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClipboardData( - /* [in] */ DWORD dwReserved, - /* [out] */ __RPC__deref_out_opt IDataObject **ppDataObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE DoVerb( - /* [in] */ LONG iVerb, - /* [unique][in] */ __RPC__in_opt LPMSG lpmsg, - /* [unique][in] */ __RPC__in_opt IOleClientSite *pActiveSite, - /* [in] */ LONG lindex, - /* [in] */ __RPC__in HWND hwndParent, - /* [unique][in] */ __RPC__in_opt LPCRECT lprcPosRect) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumVerbs( - /* [out] */ __RPC__deref_out_opt IEnumOLEVERB **ppEnumOleVerb) = 0; - - virtual HRESULT STDMETHODCALLTYPE Update( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsUpToDate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetUserClassID( - /* [out] */ __RPC__out CLSID *pClsid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetUserType( - /* [in] */ DWORD dwFormOfType, - /* [out] */ __RPC__deref_out_opt LPOLESTR *pszUserType) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetExtent( - /* [in] */ DWORD dwDrawAspect, - /* [in] */ __RPC__in SIZEL *psizel) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetExtent( - /* [in] */ DWORD dwDrawAspect, - /* [out] */ __RPC__out SIZEL *psizel) = 0; - - virtual HRESULT STDMETHODCALLTYPE Advise( - /* [unique][in] */ __RPC__in_opt IAdviseSink *pAdvSink, - /* [out] */ __RPC__out DWORD *pdwConnection) = 0; - - virtual HRESULT STDMETHODCALLTYPE Unadvise( - /* [in] */ DWORD dwConnection) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumAdvise( - /* [out] */ __RPC__deref_out_opt IEnumSTATDATA **ppenumAdvise) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMiscStatus( - /* [in] */ DWORD dwAspect, - /* [out] */ __RPC__out DWORD *pdwStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetColorScheme( - /* [in] */ __RPC__in LOGPALETTE *pLogpal) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleObjectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleObject * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleObject * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleObject * This); - - HRESULT ( STDMETHODCALLTYPE *SetClientSite )( - __RPC__in IOleObject * This, - /* [unique][in] */ __RPC__in_opt IOleClientSite *pClientSite); - - HRESULT ( STDMETHODCALLTYPE *GetClientSite )( - __RPC__in IOleObject * This, - /* [out] */ __RPC__deref_out_opt IOleClientSite **ppClientSite); - - HRESULT ( STDMETHODCALLTYPE *SetHostNames )( - __RPC__in IOleObject * This, - /* [in] */ __RPC__in LPCOLESTR szContainerApp, - /* [unique][in] */ __RPC__in_opt LPCOLESTR szContainerObj); - - HRESULT ( STDMETHODCALLTYPE *Close )( - __RPC__in IOleObject * This, - /* [in] */ DWORD dwSaveOption); - - HRESULT ( STDMETHODCALLTYPE *SetMoniker )( - __RPC__in IOleObject * This, - /* [in] */ DWORD dwWhichMoniker, - /* [unique][in] */ __RPC__in_opt IMoniker *pmk); - - HRESULT ( STDMETHODCALLTYPE *GetMoniker )( - __RPC__in IOleObject * This, - /* [in] */ DWORD dwAssign, - /* [in] */ DWORD dwWhichMoniker, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmk); - - HRESULT ( STDMETHODCALLTYPE *InitFromData )( - __RPC__in IOleObject * This, - /* [unique][in] */ __RPC__in_opt IDataObject *pDataObject, - /* [in] */ BOOL fCreation, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *GetClipboardData )( - __RPC__in IOleObject * This, - /* [in] */ DWORD dwReserved, - /* [out] */ __RPC__deref_out_opt IDataObject **ppDataObject); - - HRESULT ( STDMETHODCALLTYPE *DoVerb )( - __RPC__in IOleObject * This, - /* [in] */ LONG iVerb, - /* [unique][in] */ __RPC__in_opt LPMSG lpmsg, - /* [unique][in] */ __RPC__in_opt IOleClientSite *pActiveSite, - /* [in] */ LONG lindex, - /* [in] */ __RPC__in HWND hwndParent, - /* [unique][in] */ __RPC__in_opt LPCRECT lprcPosRect); - - HRESULT ( STDMETHODCALLTYPE *EnumVerbs )( - __RPC__in IOleObject * This, - /* [out] */ __RPC__deref_out_opt IEnumOLEVERB **ppEnumOleVerb); - - HRESULT ( STDMETHODCALLTYPE *Update )( - __RPC__in IOleObject * This); - - HRESULT ( STDMETHODCALLTYPE *IsUpToDate )( - __RPC__in IOleObject * This); - - HRESULT ( STDMETHODCALLTYPE *GetUserClassID )( - __RPC__in IOleObject * This, - /* [out] */ __RPC__out CLSID *pClsid); - - HRESULT ( STDMETHODCALLTYPE *GetUserType )( - __RPC__in IOleObject * This, - /* [in] */ DWORD dwFormOfType, - /* [out] */ __RPC__deref_out_opt LPOLESTR *pszUserType); - - HRESULT ( STDMETHODCALLTYPE *SetExtent )( - __RPC__in IOleObject * This, - /* [in] */ DWORD dwDrawAspect, - /* [in] */ __RPC__in SIZEL *psizel); - - HRESULT ( STDMETHODCALLTYPE *GetExtent )( - __RPC__in IOleObject * This, - /* [in] */ DWORD dwDrawAspect, - /* [out] */ __RPC__out SIZEL *psizel); - - HRESULT ( STDMETHODCALLTYPE *Advise )( - __RPC__in IOleObject * This, - /* [unique][in] */ __RPC__in_opt IAdviseSink *pAdvSink, - /* [out] */ __RPC__out DWORD *pdwConnection); - - HRESULT ( STDMETHODCALLTYPE *Unadvise )( - __RPC__in IOleObject * This, - /* [in] */ DWORD dwConnection); - - HRESULT ( STDMETHODCALLTYPE *EnumAdvise )( - __RPC__in IOleObject * This, - /* [out] */ __RPC__deref_out_opt IEnumSTATDATA **ppenumAdvise); - - HRESULT ( STDMETHODCALLTYPE *GetMiscStatus )( - __RPC__in IOleObject * This, - /* [in] */ DWORD dwAspect, - /* [out] */ __RPC__out DWORD *pdwStatus); - - HRESULT ( STDMETHODCALLTYPE *SetColorScheme )( - __RPC__in IOleObject * This, - /* [in] */ __RPC__in LOGPALETTE *pLogpal); - - END_INTERFACE - } IOleObjectVtbl; - - interface IOleObject - { - CONST_VTBL struct IOleObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleObject_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleObject_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleObject_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleObject_SetClientSite(This,pClientSite) \ - ( (This)->lpVtbl -> SetClientSite(This,pClientSite) ) - -#define IOleObject_GetClientSite(This,ppClientSite) \ - ( (This)->lpVtbl -> GetClientSite(This,ppClientSite) ) - -#define IOleObject_SetHostNames(This,szContainerApp,szContainerObj) \ - ( (This)->lpVtbl -> SetHostNames(This,szContainerApp,szContainerObj) ) - -#define IOleObject_Close(This,dwSaveOption) \ - ( (This)->lpVtbl -> Close(This,dwSaveOption) ) - -#define IOleObject_SetMoniker(This,dwWhichMoniker,pmk) \ - ( (This)->lpVtbl -> SetMoniker(This,dwWhichMoniker,pmk) ) - -#define IOleObject_GetMoniker(This,dwAssign,dwWhichMoniker,ppmk) \ - ( (This)->lpVtbl -> GetMoniker(This,dwAssign,dwWhichMoniker,ppmk) ) - -#define IOleObject_InitFromData(This,pDataObject,fCreation,dwReserved) \ - ( (This)->lpVtbl -> InitFromData(This,pDataObject,fCreation,dwReserved) ) - -#define IOleObject_GetClipboardData(This,dwReserved,ppDataObject) \ - ( (This)->lpVtbl -> GetClipboardData(This,dwReserved,ppDataObject) ) - -#define IOleObject_DoVerb(This,iVerb,lpmsg,pActiveSite,lindex,hwndParent,lprcPosRect) \ - ( (This)->lpVtbl -> DoVerb(This,iVerb,lpmsg,pActiveSite,lindex,hwndParent,lprcPosRect) ) - -#define IOleObject_EnumVerbs(This,ppEnumOleVerb) \ - ( (This)->lpVtbl -> EnumVerbs(This,ppEnumOleVerb) ) - -#define IOleObject_Update(This) \ - ( (This)->lpVtbl -> Update(This) ) - -#define IOleObject_IsUpToDate(This) \ - ( (This)->lpVtbl -> IsUpToDate(This) ) - -#define IOleObject_GetUserClassID(This,pClsid) \ - ( (This)->lpVtbl -> GetUserClassID(This,pClsid) ) - -#define IOleObject_GetUserType(This,dwFormOfType,pszUserType) \ - ( (This)->lpVtbl -> GetUserType(This,dwFormOfType,pszUserType) ) - -#define IOleObject_SetExtent(This,dwDrawAspect,psizel) \ - ( (This)->lpVtbl -> SetExtent(This,dwDrawAspect,psizel) ) - -#define IOleObject_GetExtent(This,dwDrawAspect,psizel) \ - ( (This)->lpVtbl -> GetExtent(This,dwDrawAspect,psizel) ) - -#define IOleObject_Advise(This,pAdvSink,pdwConnection) \ - ( (This)->lpVtbl -> Advise(This,pAdvSink,pdwConnection) ) - -#define IOleObject_Unadvise(This,dwConnection) \ - ( (This)->lpVtbl -> Unadvise(This,dwConnection) ) - -#define IOleObject_EnumAdvise(This,ppenumAdvise) \ - ( (This)->lpVtbl -> EnumAdvise(This,ppenumAdvise) ) - -#define IOleObject_GetMiscStatus(This,dwAspect,pdwStatus) \ - ( (This)->lpVtbl -> GetMiscStatus(This,dwAspect,pdwStatus) ) - -#define IOleObject_SetColorScheme(This,pLogpal) \ - ( (This)->lpVtbl -> SetColorScheme(This,pLogpal) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleObject_INTERFACE_DEFINED__ */ - - -#ifndef __IOLETypes_INTERFACE_DEFINED__ -#define __IOLETypes_INTERFACE_DEFINED__ - -/* interface IOLETypes */ -/* [uuid] */ - -typedef -enum tagOLERENDER - { - OLERENDER_NONE = 0, - OLERENDER_DRAW = 1, - OLERENDER_FORMAT = 2, - OLERENDER_ASIS = 3 - } OLERENDER; - -typedef OLERENDER *LPOLERENDER; - -typedef struct tagOBJECTDESCRIPTOR - { - ULONG cbSize; - CLSID clsid; - DWORD dwDrawAspect; - SIZEL sizel; - POINTL pointl; - DWORD dwStatus; - DWORD dwFullUserTypeName; - DWORD dwSrcOfCopy; - } OBJECTDESCRIPTOR; - -typedef struct tagOBJECTDESCRIPTOR *POBJECTDESCRIPTOR; - -typedef struct tagOBJECTDESCRIPTOR *LPOBJECTDESCRIPTOR; - -typedef struct tagOBJECTDESCRIPTOR LINKSRCDESCRIPTOR; - -typedef struct tagOBJECTDESCRIPTOR *PLINKSRCDESCRIPTOR; - -typedef struct tagOBJECTDESCRIPTOR *LPLINKSRCDESCRIPTOR; - - - -extern RPC_IF_HANDLE IOLETypes_v0_0_c_ifspec; -extern RPC_IF_HANDLE IOLETypes_v0_0_s_ifspec; -#endif /* __IOLETypes_INTERFACE_DEFINED__ */ - -#ifndef __IOleWindow_INTERFACE_DEFINED__ -#define __IOleWindow_INTERFACE_DEFINED__ - -/* interface IOleWindow */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleWindow *LPOLEWINDOW; - - -EXTERN_C const IID IID_IOleWindow; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000114-0000-0000-C000-000000000046") - IOleWindow : public IUnknown - { - public: - virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE GetWindow( - /* [out] */ __RPC__deref_out_opt HWND *phwnd) = 0; - - virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp( - /* [in] */ BOOL fEnterMode) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleWindowVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleWindow * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleWindow * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleWindow * This); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *GetWindow )( - __RPC__in IOleWindow * This, - /* [out] */ __RPC__deref_out_opt HWND *phwnd); - - HRESULT ( STDMETHODCALLTYPE *ContextSensitiveHelp )( - __RPC__in IOleWindow * This, - /* [in] */ BOOL fEnterMode); - - END_INTERFACE - } IOleWindowVtbl; - - interface IOleWindow - { - CONST_VTBL struct IOleWindowVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleWindow_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleWindow_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleWindow_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleWindow_GetWindow(This,phwnd) \ - ( (This)->lpVtbl -> GetWindow(This,phwnd) ) - -#define IOleWindow_ContextSensitiveHelp(This,fEnterMode) \ - ( (This)->lpVtbl -> ContextSensitiveHelp(This,fEnterMode) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleWindow_INTERFACE_DEFINED__ */ - - -#ifndef __IOleLink_INTERFACE_DEFINED__ -#define __IOleLink_INTERFACE_DEFINED__ - -/* interface IOleLink */ -/* [uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleLink *LPOLELINK; - -typedef -enum tagOLEUPDATE - { - OLEUPDATE_ALWAYS = 1, - OLEUPDATE_ONCALL = 3 - } OLEUPDATE; - -typedef OLEUPDATE *LPOLEUPDATE; - -typedef OLEUPDATE *POLEUPDATE; - -typedef -enum tagOLELINKBIND - { - OLELINKBIND_EVENIFCLASSDIFF = 1 - } OLELINKBIND; - - -EXTERN_C const IID IID_IOleLink; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000011d-0000-0000-C000-000000000046") - IOleLink : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetUpdateOptions( - /* [in] */ DWORD dwUpdateOpt) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetUpdateOptions( - /* [out] */ __RPC__out DWORD *pdwUpdateOpt) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetSourceMoniker( - /* [unique][in] */ __RPC__in_opt IMoniker *pmk, - /* [in] */ __RPC__in REFCLSID rclsid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSourceMoniker( - /* [out] */ __RPC__deref_out_opt IMoniker **ppmk) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetSourceDisplayName( - /* [in] */ __RPC__in LPCOLESTR pszStatusText) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSourceDisplayName( - /* [out] */ __RPC__deref_out_opt LPOLESTR *ppszDisplayName) = 0; - - virtual HRESULT STDMETHODCALLTYPE BindToSource( - /* [in] */ DWORD bindflags, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc) = 0; - - virtual HRESULT STDMETHODCALLTYPE BindIfRunning( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBoundSource( - /* [out] */ __RPC__deref_out_opt IUnknown **ppunk) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnbindSource( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Update( - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleLinkVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleLink * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleLink * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleLink * This); - - HRESULT ( STDMETHODCALLTYPE *SetUpdateOptions )( - __RPC__in IOleLink * This, - /* [in] */ DWORD dwUpdateOpt); - - HRESULT ( STDMETHODCALLTYPE *GetUpdateOptions )( - __RPC__in IOleLink * This, - /* [out] */ __RPC__out DWORD *pdwUpdateOpt); - - HRESULT ( STDMETHODCALLTYPE *SetSourceMoniker )( - __RPC__in IOleLink * This, - /* [unique][in] */ __RPC__in_opt IMoniker *pmk, - /* [in] */ __RPC__in REFCLSID rclsid); - - HRESULT ( STDMETHODCALLTYPE *GetSourceMoniker )( - __RPC__in IOleLink * This, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmk); - - HRESULT ( STDMETHODCALLTYPE *SetSourceDisplayName )( - __RPC__in IOleLink * This, - /* [in] */ __RPC__in LPCOLESTR pszStatusText); - - HRESULT ( STDMETHODCALLTYPE *GetSourceDisplayName )( - __RPC__in IOleLink * This, - /* [out] */ __RPC__deref_out_opt LPOLESTR *ppszDisplayName); - - HRESULT ( STDMETHODCALLTYPE *BindToSource )( - __RPC__in IOleLink * This, - /* [in] */ DWORD bindflags, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc); - - HRESULT ( STDMETHODCALLTYPE *BindIfRunning )( - __RPC__in IOleLink * This); - - HRESULT ( STDMETHODCALLTYPE *GetBoundSource )( - __RPC__in IOleLink * This, - /* [out] */ __RPC__deref_out_opt IUnknown **ppunk); - - HRESULT ( STDMETHODCALLTYPE *UnbindSource )( - __RPC__in IOleLink * This); - - HRESULT ( STDMETHODCALLTYPE *Update )( - __RPC__in IOleLink * This, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc); - - END_INTERFACE - } IOleLinkVtbl; - - interface IOleLink - { - CONST_VTBL struct IOleLinkVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleLink_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleLink_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleLink_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleLink_SetUpdateOptions(This,dwUpdateOpt) \ - ( (This)->lpVtbl -> SetUpdateOptions(This,dwUpdateOpt) ) - -#define IOleLink_GetUpdateOptions(This,pdwUpdateOpt) \ - ( (This)->lpVtbl -> GetUpdateOptions(This,pdwUpdateOpt) ) - -#define IOleLink_SetSourceMoniker(This,pmk,rclsid) \ - ( (This)->lpVtbl -> SetSourceMoniker(This,pmk,rclsid) ) - -#define IOleLink_GetSourceMoniker(This,ppmk) \ - ( (This)->lpVtbl -> GetSourceMoniker(This,ppmk) ) - -#define IOleLink_SetSourceDisplayName(This,pszStatusText) \ - ( (This)->lpVtbl -> SetSourceDisplayName(This,pszStatusText) ) - -#define IOleLink_GetSourceDisplayName(This,ppszDisplayName) \ - ( (This)->lpVtbl -> GetSourceDisplayName(This,ppszDisplayName) ) - -#define IOleLink_BindToSource(This,bindflags,pbc) \ - ( (This)->lpVtbl -> BindToSource(This,bindflags,pbc) ) - -#define IOleLink_BindIfRunning(This) \ - ( (This)->lpVtbl -> BindIfRunning(This) ) - -#define IOleLink_GetBoundSource(This,ppunk) \ - ( (This)->lpVtbl -> GetBoundSource(This,ppunk) ) - -#define IOleLink_UnbindSource(This) \ - ( (This)->lpVtbl -> UnbindSource(This) ) - -#define IOleLink_Update(This,pbc) \ - ( (This)->lpVtbl -> Update(This,pbc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleLink_INTERFACE_DEFINED__ */ - - -#ifndef __IOleItemContainer_INTERFACE_DEFINED__ -#define __IOleItemContainer_INTERFACE_DEFINED__ - -/* interface IOleItemContainer */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleItemContainer *LPOLEITEMCONTAINER; - -typedef -enum tagBINDSPEED - { - BINDSPEED_INDEFINITE = 1, - BINDSPEED_MODERATE = 2, - BINDSPEED_IMMEDIATE = 3 - } BINDSPEED; - -typedef /* [v1_enum] */ -enum tagOLECONTF - { - OLECONTF_EMBEDDINGS = 1, - OLECONTF_LINKS = 2, - OLECONTF_OTHERS = 4, - OLECONTF_ONLYUSER = 8, - OLECONTF_ONLYIFRUNNING = 16 - } OLECONTF; - - -EXTERN_C const IID IID_IOleItemContainer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000011c-0000-0000-C000-000000000046") - IOleItemContainer : public IOleContainer - { - public: - virtual HRESULT STDMETHODCALLTYPE GetObject( - /* [in] */ __RPC__in LPOLESTR pszItem, - /* [in] */ DWORD dwSpeedNeeded, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt void **ppvObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObjectStorage( - /* [in] */ __RPC__in LPOLESTR pszItem, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt void **ppvStorage) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsRunning( - /* [in] */ __RPC__in LPOLESTR pszItem) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleItemContainerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleItemContainer * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleItemContainer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleItemContainer * This); - - HRESULT ( STDMETHODCALLTYPE *ParseDisplayName )( - __RPC__in IOleItemContainer * This, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [in] */ __RPC__in LPOLESTR pszDisplayName, - /* [out] */ __RPC__out ULONG *pchEaten, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmkOut); - - HRESULT ( STDMETHODCALLTYPE *EnumObjects )( - __RPC__in IOleItemContainer * This, - /* [in] */ DWORD grfFlags, - /* [out] */ __RPC__deref_out_opt IEnumUnknown **ppenum); - - HRESULT ( STDMETHODCALLTYPE *LockContainer )( - __RPC__in IOleItemContainer * This, - /* [in] */ BOOL fLock); - - HRESULT ( STDMETHODCALLTYPE *GetObject )( - __RPC__in IOleItemContainer * This, - /* [in] */ __RPC__in LPOLESTR pszItem, - /* [in] */ DWORD dwSpeedNeeded, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt void **ppvObject); - - HRESULT ( STDMETHODCALLTYPE *GetObjectStorage )( - __RPC__in IOleItemContainer * This, - /* [in] */ __RPC__in LPOLESTR pszItem, - /* [unique][in] */ __RPC__in_opt IBindCtx *pbc, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt void **ppvStorage); - - HRESULT ( STDMETHODCALLTYPE *IsRunning )( - __RPC__in IOleItemContainer * This, - /* [in] */ __RPC__in LPOLESTR pszItem); - - END_INTERFACE - } IOleItemContainerVtbl; - - interface IOleItemContainer - { - CONST_VTBL struct IOleItemContainerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleItemContainer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleItemContainer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleItemContainer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleItemContainer_ParseDisplayName(This,pbc,pszDisplayName,pchEaten,ppmkOut) \ - ( (This)->lpVtbl -> ParseDisplayName(This,pbc,pszDisplayName,pchEaten,ppmkOut) ) - - -#define IOleItemContainer_EnumObjects(This,grfFlags,ppenum) \ - ( (This)->lpVtbl -> EnumObjects(This,grfFlags,ppenum) ) - -#define IOleItemContainer_LockContainer(This,fLock) \ - ( (This)->lpVtbl -> LockContainer(This,fLock) ) - - -#define IOleItemContainer_GetObject(This,pszItem,dwSpeedNeeded,pbc,riid,ppvObject) \ - ( (This)->lpVtbl -> GetObject(This,pszItem,dwSpeedNeeded,pbc,riid,ppvObject) ) - -#define IOleItemContainer_GetObjectStorage(This,pszItem,pbc,riid,ppvStorage) \ - ( (This)->lpVtbl -> GetObjectStorage(This,pszItem,pbc,riid,ppvStorage) ) - -#define IOleItemContainer_IsRunning(This,pszItem) \ - ( (This)->lpVtbl -> IsRunning(This,pszItem) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleItemContainer_INTERFACE_DEFINED__ */ - - -#ifndef __IOleInPlaceUIWindow_INTERFACE_DEFINED__ -#define __IOleInPlaceUIWindow_INTERFACE_DEFINED__ - -/* interface IOleInPlaceUIWindow */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW; - -typedef RECT BORDERWIDTHS; - -typedef LPRECT LPBORDERWIDTHS; - -typedef LPCRECT LPCBORDERWIDTHS; - - -EXTERN_C const IID IID_IOleInPlaceUIWindow; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000115-0000-0000-C000-000000000046") - IOleInPlaceUIWindow : public IOleWindow - { - public: - virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE GetBorder( - /* [out] */ __RPC__out LPRECT lprectBorder) = 0; - - virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE RequestBorderSpace( - /* [unique][in] */ __RPC__in_opt LPCBORDERWIDTHS pborderwidths) = 0; - - virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE SetBorderSpace( - /* [unique][in] */ __RPC__in_opt LPCBORDERWIDTHS pborderwidths) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetActiveObject( - /* [unique][in] */ __RPC__in_opt IOleInPlaceActiveObject *pActiveObject, - /* [unique][string][in] */ __RPC__in_opt_string LPCOLESTR pszObjName) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleInPlaceUIWindowVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleInPlaceUIWindow * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleInPlaceUIWindow * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleInPlaceUIWindow * This); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *GetWindow )( - __RPC__in IOleInPlaceUIWindow * This, - /* [out] */ __RPC__deref_out_opt HWND *phwnd); - - HRESULT ( STDMETHODCALLTYPE *ContextSensitiveHelp )( - __RPC__in IOleInPlaceUIWindow * This, - /* [in] */ BOOL fEnterMode); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *GetBorder )( - __RPC__in IOleInPlaceUIWindow * This, - /* [out] */ __RPC__out LPRECT lprectBorder); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *RequestBorderSpace )( - __RPC__in IOleInPlaceUIWindow * This, - /* [unique][in] */ __RPC__in_opt LPCBORDERWIDTHS pborderwidths); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *SetBorderSpace )( - __RPC__in IOleInPlaceUIWindow * This, - /* [unique][in] */ __RPC__in_opt LPCBORDERWIDTHS pborderwidths); - - HRESULT ( STDMETHODCALLTYPE *SetActiveObject )( - __RPC__in IOleInPlaceUIWindow * This, - /* [unique][in] */ __RPC__in_opt IOleInPlaceActiveObject *pActiveObject, - /* [unique][string][in] */ __RPC__in_opt_string LPCOLESTR pszObjName); - - END_INTERFACE - } IOleInPlaceUIWindowVtbl; - - interface IOleInPlaceUIWindow - { - CONST_VTBL struct IOleInPlaceUIWindowVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleInPlaceUIWindow_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleInPlaceUIWindow_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleInPlaceUIWindow_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleInPlaceUIWindow_GetWindow(This,phwnd) \ - ( (This)->lpVtbl -> GetWindow(This,phwnd) ) - -#define IOleInPlaceUIWindow_ContextSensitiveHelp(This,fEnterMode) \ - ( (This)->lpVtbl -> ContextSensitiveHelp(This,fEnterMode) ) - - -#define IOleInPlaceUIWindow_GetBorder(This,lprectBorder) \ - ( (This)->lpVtbl -> GetBorder(This,lprectBorder) ) - -#define IOleInPlaceUIWindow_RequestBorderSpace(This,pborderwidths) \ - ( (This)->lpVtbl -> RequestBorderSpace(This,pborderwidths) ) - -#define IOleInPlaceUIWindow_SetBorderSpace(This,pborderwidths) \ - ( (This)->lpVtbl -> SetBorderSpace(This,pborderwidths) ) - -#define IOleInPlaceUIWindow_SetActiveObject(This,pActiveObject,pszObjName) \ - ( (This)->lpVtbl -> SetActiveObject(This,pActiveObject,pszObjName) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleInPlaceUIWindow_INTERFACE_DEFINED__ */ - - -#ifndef __IOleInPlaceActiveObject_INTERFACE_DEFINED__ -#define __IOleInPlaceActiveObject_INTERFACE_DEFINED__ - -/* interface IOleInPlaceActiveObject */ -/* [uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT; - - -EXTERN_C const IID IID_IOleInPlaceActiveObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000117-0000-0000-C000-000000000046") - IOleInPlaceActiveObject : public IOleWindow - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE TranslateAccelerator( - /* [annotation][in] */ - _In_opt_ LPMSG lpmsg) = 0; - - virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE OnFrameWindowActivate( - /* [in] */ BOOL fActivate) = 0; - - virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE OnDocWindowActivate( - /* [in] */ BOOL fActivate) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE ResizeBorder( - /* [annotation][in] */ - _In_ LPCRECT prcBorder, - /* [annotation][unique][in] */ - _In_ IOleInPlaceUIWindow *pUIWindow, - /* [annotation][in] */ - _In_ BOOL fFrameWindow) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableModeless( - /* [in] */ BOOL fEnable) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleInPlaceActiveObjectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleInPlaceActiveObject * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleInPlaceActiveObject * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleInPlaceActiveObject * This); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *GetWindow )( - __RPC__in IOleInPlaceActiveObject * This, - /* [out] */ __RPC__deref_out_opt HWND *phwnd); - - HRESULT ( STDMETHODCALLTYPE *ContextSensitiveHelp )( - __RPC__in IOleInPlaceActiveObject * This, - /* [in] */ BOOL fEnterMode); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *TranslateAccelerator )( - IOleInPlaceActiveObject * This, - /* [annotation][in] */ - _In_opt_ LPMSG lpmsg); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *OnFrameWindowActivate )( - __RPC__in IOleInPlaceActiveObject * This, - /* [in] */ BOOL fActivate); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *OnDocWindowActivate )( - __RPC__in IOleInPlaceActiveObject * This, - /* [in] */ BOOL fActivate); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *ResizeBorder )( - IOleInPlaceActiveObject * This, - /* [annotation][in] */ - _In_ LPCRECT prcBorder, - /* [annotation][unique][in] */ - _In_ IOleInPlaceUIWindow *pUIWindow, - /* [annotation][in] */ - _In_ BOOL fFrameWindow); - - HRESULT ( STDMETHODCALLTYPE *EnableModeless )( - __RPC__in IOleInPlaceActiveObject * This, - /* [in] */ BOOL fEnable); - - END_INTERFACE - } IOleInPlaceActiveObjectVtbl; - - interface IOleInPlaceActiveObject - { - CONST_VTBL struct IOleInPlaceActiveObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleInPlaceActiveObject_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleInPlaceActiveObject_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleInPlaceActiveObject_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleInPlaceActiveObject_GetWindow(This,phwnd) \ - ( (This)->lpVtbl -> GetWindow(This,phwnd) ) - -#define IOleInPlaceActiveObject_ContextSensitiveHelp(This,fEnterMode) \ - ( (This)->lpVtbl -> ContextSensitiveHelp(This,fEnterMode) ) - - -#define IOleInPlaceActiveObject_TranslateAccelerator(This,lpmsg) \ - ( (This)->lpVtbl -> TranslateAccelerator(This,lpmsg) ) - -#define IOleInPlaceActiveObject_OnFrameWindowActivate(This,fActivate) \ - ( (This)->lpVtbl -> OnFrameWindowActivate(This,fActivate) ) - -#define IOleInPlaceActiveObject_OnDocWindowActivate(This,fActivate) \ - ( (This)->lpVtbl -> OnDocWindowActivate(This,fActivate) ) - -#define IOleInPlaceActiveObject_ResizeBorder(This,prcBorder,pUIWindow,fFrameWindow) \ - ( (This)->lpVtbl -> ResizeBorder(This,prcBorder,pUIWindow,fFrameWindow) ) - -#define IOleInPlaceActiveObject_EnableModeless(This,fEnable) \ - ( (This)->lpVtbl -> EnableModeless(This,fEnable) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IOleInPlaceActiveObject_RemoteTranslateAccelerator_Proxy( - __RPC__in IOleInPlaceActiveObject * This); - - -void __RPC_STUB IOleInPlaceActiveObject_RemoteTranslateAccelerator_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [input_sync][call_as] */ HRESULT STDMETHODCALLTYPE IOleInPlaceActiveObject_RemoteResizeBorder_Proxy( - __RPC__in IOleInPlaceActiveObject * This, - /* [in] */ __RPC__in LPCRECT prcBorder, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][unique][in] */ __RPC__in_opt IOleInPlaceUIWindow *pUIWindow, - /* [in] */ BOOL fFrameWindow); - - -void __RPC_STUB IOleInPlaceActiveObject_RemoteResizeBorder_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IOleInPlaceActiveObject_INTERFACE_DEFINED__ */ - - -#ifndef __IOleInPlaceFrame_INTERFACE_DEFINED__ -#define __IOleInPlaceFrame_INTERFACE_DEFINED__ - -/* interface IOleInPlaceFrame */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleInPlaceFrame *LPOLEINPLACEFRAME; - -typedef struct tagOIFI - { - UINT cb; - BOOL fMDIApp; - HWND hwndFrame; - HACCEL haccel; - UINT cAccelEntries; - } OLEINPLACEFRAMEINFO; - -typedef struct tagOIFI *LPOLEINPLACEFRAMEINFO; - -typedef struct tagOleMenuGroupWidths - { - LONG width[ 6 ]; - } OLEMENUGROUPWIDTHS; - -typedef struct tagOleMenuGroupWidths *LPOLEMENUGROUPWIDTHS; - -typedef HGLOBAL HOLEMENU; - - -EXTERN_C const IID IID_IOleInPlaceFrame; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000116-0000-0000-C000-000000000046") - IOleInPlaceFrame : public IOleInPlaceUIWindow - { - public: - virtual HRESULT STDMETHODCALLTYPE InsertMenus( - /* [in] */ __RPC__in HMENU hmenuShared, - /* [out][in] */ __RPC__inout LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0; - - virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE SetMenu( - /* [in] */ __RPC__in HMENU hmenuShared, - /* [in] */ __RPC__in HOLEMENU holemenu, - /* [in] */ __RPC__in HWND hwndActiveObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE RemoveMenus( - /* [in] */ __RPC__in HMENU hmenuShared) = 0; - - virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE SetStatusText( - /* [unique][in] */ __RPC__in_opt LPCOLESTR pszStatusText) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableModeless( - /* [in] */ BOOL fEnable) = 0; - - virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator( - /* [in] */ __RPC__in LPMSG lpmsg, - /* [in] */ WORD wID) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleInPlaceFrameVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleInPlaceFrame * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleInPlaceFrame * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleInPlaceFrame * This); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *GetWindow )( - __RPC__in IOleInPlaceFrame * This, - /* [out] */ __RPC__deref_out_opt HWND *phwnd); - - HRESULT ( STDMETHODCALLTYPE *ContextSensitiveHelp )( - __RPC__in IOleInPlaceFrame * This, - /* [in] */ BOOL fEnterMode); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *GetBorder )( - __RPC__in IOleInPlaceFrame * This, - /* [out] */ __RPC__out LPRECT lprectBorder); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *RequestBorderSpace )( - __RPC__in IOleInPlaceFrame * This, - /* [unique][in] */ __RPC__in_opt LPCBORDERWIDTHS pborderwidths); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *SetBorderSpace )( - __RPC__in IOleInPlaceFrame * This, - /* [unique][in] */ __RPC__in_opt LPCBORDERWIDTHS pborderwidths); - - HRESULT ( STDMETHODCALLTYPE *SetActiveObject )( - __RPC__in IOleInPlaceFrame * This, - /* [unique][in] */ __RPC__in_opt IOleInPlaceActiveObject *pActiveObject, - /* [unique][string][in] */ __RPC__in_opt_string LPCOLESTR pszObjName); - - HRESULT ( STDMETHODCALLTYPE *InsertMenus )( - __RPC__in IOleInPlaceFrame * This, - /* [in] */ __RPC__in HMENU hmenuShared, - /* [out][in] */ __RPC__inout LPOLEMENUGROUPWIDTHS lpMenuWidths); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *SetMenu )( - __RPC__in IOleInPlaceFrame * This, - /* [in] */ __RPC__in HMENU hmenuShared, - /* [in] */ __RPC__in HOLEMENU holemenu, - /* [in] */ __RPC__in HWND hwndActiveObject); - - HRESULT ( STDMETHODCALLTYPE *RemoveMenus )( - __RPC__in IOleInPlaceFrame * This, - /* [in] */ __RPC__in HMENU hmenuShared); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *SetStatusText )( - __RPC__in IOleInPlaceFrame * This, - /* [unique][in] */ __RPC__in_opt LPCOLESTR pszStatusText); - - HRESULT ( STDMETHODCALLTYPE *EnableModeless )( - __RPC__in IOleInPlaceFrame * This, - /* [in] */ BOOL fEnable); - - HRESULT ( STDMETHODCALLTYPE *TranslateAccelerator )( - __RPC__in IOleInPlaceFrame * This, - /* [in] */ __RPC__in LPMSG lpmsg, - /* [in] */ WORD wID); - - END_INTERFACE - } IOleInPlaceFrameVtbl; - - interface IOleInPlaceFrame - { - CONST_VTBL struct IOleInPlaceFrameVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleInPlaceFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleInPlaceFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleInPlaceFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleInPlaceFrame_GetWindow(This,phwnd) \ - ( (This)->lpVtbl -> GetWindow(This,phwnd) ) - -#define IOleInPlaceFrame_ContextSensitiveHelp(This,fEnterMode) \ - ( (This)->lpVtbl -> ContextSensitiveHelp(This,fEnterMode) ) - - -#define IOleInPlaceFrame_GetBorder(This,lprectBorder) \ - ( (This)->lpVtbl -> GetBorder(This,lprectBorder) ) - -#define IOleInPlaceFrame_RequestBorderSpace(This,pborderwidths) \ - ( (This)->lpVtbl -> RequestBorderSpace(This,pborderwidths) ) - -#define IOleInPlaceFrame_SetBorderSpace(This,pborderwidths) \ - ( (This)->lpVtbl -> SetBorderSpace(This,pborderwidths) ) - -#define IOleInPlaceFrame_SetActiveObject(This,pActiveObject,pszObjName) \ - ( (This)->lpVtbl -> SetActiveObject(This,pActiveObject,pszObjName) ) - - -#define IOleInPlaceFrame_InsertMenus(This,hmenuShared,lpMenuWidths) \ - ( (This)->lpVtbl -> InsertMenus(This,hmenuShared,lpMenuWidths) ) - -#define IOleInPlaceFrame_SetMenu(This,hmenuShared,holemenu,hwndActiveObject) \ - ( (This)->lpVtbl -> SetMenu(This,hmenuShared,holemenu,hwndActiveObject) ) - -#define IOleInPlaceFrame_RemoveMenus(This,hmenuShared) \ - ( (This)->lpVtbl -> RemoveMenus(This,hmenuShared) ) - -#define IOleInPlaceFrame_SetStatusText(This,pszStatusText) \ - ( (This)->lpVtbl -> SetStatusText(This,pszStatusText) ) - -#define IOleInPlaceFrame_EnableModeless(This,fEnable) \ - ( (This)->lpVtbl -> EnableModeless(This,fEnable) ) - -#define IOleInPlaceFrame_TranslateAccelerator(This,lpmsg,wID) \ - ( (This)->lpVtbl -> TranslateAccelerator(This,lpmsg,wID) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleInPlaceFrame_INTERFACE_DEFINED__ */ - - -#ifndef __IOleInPlaceObject_INTERFACE_DEFINED__ -#define __IOleInPlaceObject_INTERFACE_DEFINED__ - -/* interface IOleInPlaceObject */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleInPlaceObject *LPOLEINPLACEOBJECT; - - -EXTERN_C const IID IID_IOleInPlaceObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000113-0000-0000-C000-000000000046") - IOleInPlaceObject : public IOleWindow - { - public: - virtual HRESULT STDMETHODCALLTYPE InPlaceDeactivate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE UIDeactivate( void) = 0; - - virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE SetObjectRects( - /* [in] */ __RPC__in LPCRECT lprcPosRect, - /* [in] */ __RPC__in LPCRECT lprcClipRect) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReactivateAndUndo( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleInPlaceObjectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleInPlaceObject * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleInPlaceObject * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleInPlaceObject * This); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *GetWindow )( - __RPC__in IOleInPlaceObject * This, - /* [out] */ __RPC__deref_out_opt HWND *phwnd); - - HRESULT ( STDMETHODCALLTYPE *ContextSensitiveHelp )( - __RPC__in IOleInPlaceObject * This, - /* [in] */ BOOL fEnterMode); - - HRESULT ( STDMETHODCALLTYPE *InPlaceDeactivate )( - __RPC__in IOleInPlaceObject * This); - - HRESULT ( STDMETHODCALLTYPE *UIDeactivate )( - __RPC__in IOleInPlaceObject * This); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *SetObjectRects )( - __RPC__in IOleInPlaceObject * This, - /* [in] */ __RPC__in LPCRECT lprcPosRect, - /* [in] */ __RPC__in LPCRECT lprcClipRect); - - HRESULT ( STDMETHODCALLTYPE *ReactivateAndUndo )( - __RPC__in IOleInPlaceObject * This); - - END_INTERFACE - } IOleInPlaceObjectVtbl; - - interface IOleInPlaceObject - { - CONST_VTBL struct IOleInPlaceObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleInPlaceObject_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleInPlaceObject_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleInPlaceObject_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleInPlaceObject_GetWindow(This,phwnd) \ - ( (This)->lpVtbl -> GetWindow(This,phwnd) ) - -#define IOleInPlaceObject_ContextSensitiveHelp(This,fEnterMode) \ - ( (This)->lpVtbl -> ContextSensitiveHelp(This,fEnterMode) ) - - -#define IOleInPlaceObject_InPlaceDeactivate(This) \ - ( (This)->lpVtbl -> InPlaceDeactivate(This) ) - -#define IOleInPlaceObject_UIDeactivate(This) \ - ( (This)->lpVtbl -> UIDeactivate(This) ) - -#define IOleInPlaceObject_SetObjectRects(This,lprcPosRect,lprcClipRect) \ - ( (This)->lpVtbl -> SetObjectRects(This,lprcPosRect,lprcClipRect) ) - -#define IOleInPlaceObject_ReactivateAndUndo(This) \ - ( (This)->lpVtbl -> ReactivateAndUndo(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleInPlaceObject_INTERFACE_DEFINED__ */ - - -#ifndef __IOleInPlaceSite_INTERFACE_DEFINED__ -#define __IOleInPlaceSite_INTERFACE_DEFINED__ - -/* interface IOleInPlaceSite */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IOleInPlaceSite *LPOLEINPLACESITE; - - -EXTERN_C const IID IID_IOleInPlaceSite; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000119-0000-0000-C000-000000000046") - IOleInPlaceSite : public IOleWindow - { - public: - virtual HRESULT STDMETHODCALLTYPE CanInPlaceActivate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnInPlaceActivate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnUIActivate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetWindowContext( - /* [out] */ __RPC__deref_out_opt IOleInPlaceFrame **ppFrame, - /* [out] */ __RPC__deref_out_opt IOleInPlaceUIWindow **ppDoc, - /* [out] */ __RPC__out LPRECT lprcPosRect, - /* [out] */ __RPC__out LPRECT lprcClipRect, - /* [out][in] */ __RPC__inout LPOLEINPLACEFRAMEINFO lpFrameInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE Scroll( - /* [in] */ SIZE scrollExtant) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnUIDeactivate( - /* [in] */ BOOL fUndoable) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnInPlaceDeactivate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE DiscardUndoState( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE DeactivateAndUndo( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnPosRectChange( - /* [in] */ __RPC__in LPCRECT lprcPosRect) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IOleInPlaceSiteVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IOleInPlaceSite * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IOleInPlaceSite * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IOleInPlaceSite * This); - - /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *GetWindow )( - __RPC__in IOleInPlaceSite * This, - /* [out] */ __RPC__deref_out_opt HWND *phwnd); - - HRESULT ( STDMETHODCALLTYPE *ContextSensitiveHelp )( - __RPC__in IOleInPlaceSite * This, - /* [in] */ BOOL fEnterMode); - - HRESULT ( STDMETHODCALLTYPE *CanInPlaceActivate )( - __RPC__in IOleInPlaceSite * This); - - HRESULT ( STDMETHODCALLTYPE *OnInPlaceActivate )( - __RPC__in IOleInPlaceSite * This); - - HRESULT ( STDMETHODCALLTYPE *OnUIActivate )( - __RPC__in IOleInPlaceSite * This); - - HRESULT ( STDMETHODCALLTYPE *GetWindowContext )( - __RPC__in IOleInPlaceSite * This, - /* [out] */ __RPC__deref_out_opt IOleInPlaceFrame **ppFrame, - /* [out] */ __RPC__deref_out_opt IOleInPlaceUIWindow **ppDoc, - /* [out] */ __RPC__out LPRECT lprcPosRect, - /* [out] */ __RPC__out LPRECT lprcClipRect, - /* [out][in] */ __RPC__inout LPOLEINPLACEFRAMEINFO lpFrameInfo); - - HRESULT ( STDMETHODCALLTYPE *Scroll )( - __RPC__in IOleInPlaceSite * This, - /* [in] */ SIZE scrollExtant); - - HRESULT ( STDMETHODCALLTYPE *OnUIDeactivate )( - __RPC__in IOleInPlaceSite * This, - /* [in] */ BOOL fUndoable); - - HRESULT ( STDMETHODCALLTYPE *OnInPlaceDeactivate )( - __RPC__in IOleInPlaceSite * This); - - HRESULT ( STDMETHODCALLTYPE *DiscardUndoState )( - __RPC__in IOleInPlaceSite * This); - - HRESULT ( STDMETHODCALLTYPE *DeactivateAndUndo )( - __RPC__in IOleInPlaceSite * This); - - HRESULT ( STDMETHODCALLTYPE *OnPosRectChange )( - __RPC__in IOleInPlaceSite * This, - /* [in] */ __RPC__in LPCRECT lprcPosRect); - - END_INTERFACE - } IOleInPlaceSiteVtbl; - - interface IOleInPlaceSite - { - CONST_VTBL struct IOleInPlaceSiteVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IOleInPlaceSite_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IOleInPlaceSite_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IOleInPlaceSite_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IOleInPlaceSite_GetWindow(This,phwnd) \ - ( (This)->lpVtbl -> GetWindow(This,phwnd) ) - -#define IOleInPlaceSite_ContextSensitiveHelp(This,fEnterMode) \ - ( (This)->lpVtbl -> ContextSensitiveHelp(This,fEnterMode) ) - - -#define IOleInPlaceSite_CanInPlaceActivate(This) \ - ( (This)->lpVtbl -> CanInPlaceActivate(This) ) - -#define IOleInPlaceSite_OnInPlaceActivate(This) \ - ( (This)->lpVtbl -> OnInPlaceActivate(This) ) - -#define IOleInPlaceSite_OnUIActivate(This) \ - ( (This)->lpVtbl -> OnUIActivate(This) ) - -#define IOleInPlaceSite_GetWindowContext(This,ppFrame,ppDoc,lprcPosRect,lprcClipRect,lpFrameInfo) \ - ( (This)->lpVtbl -> GetWindowContext(This,ppFrame,ppDoc,lprcPosRect,lprcClipRect,lpFrameInfo) ) - -#define IOleInPlaceSite_Scroll(This,scrollExtant) \ - ( (This)->lpVtbl -> Scroll(This,scrollExtant) ) - -#define IOleInPlaceSite_OnUIDeactivate(This,fUndoable) \ - ( (This)->lpVtbl -> OnUIDeactivate(This,fUndoable) ) - -#define IOleInPlaceSite_OnInPlaceDeactivate(This) \ - ( (This)->lpVtbl -> OnInPlaceDeactivate(This) ) - -#define IOleInPlaceSite_DiscardUndoState(This) \ - ( (This)->lpVtbl -> DiscardUndoState(This) ) - -#define IOleInPlaceSite_DeactivateAndUndo(This) \ - ( (This)->lpVtbl -> DeactivateAndUndo(This) ) - -#define IOleInPlaceSite_OnPosRectChange(This,lprcPosRect) \ - ( (This)->lpVtbl -> OnPosRectChange(This,lprcPosRect) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IOleInPlaceSite_INTERFACE_DEFINED__ */ - - -#ifndef __IContinue_INTERFACE_DEFINED__ -#define __IContinue_INTERFACE_DEFINED__ - -/* interface IContinue */ -/* [uuid][object] */ - - -EXTERN_C const IID IID_IContinue; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000012a-0000-0000-C000-000000000046") - IContinue : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE FContinue( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IContinueVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IContinue * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IContinue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IContinue * This); - - HRESULT ( STDMETHODCALLTYPE *FContinue )( - __RPC__in IContinue * This); - - END_INTERFACE - } IContinueVtbl; - - interface IContinue - { - CONST_VTBL struct IContinueVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IContinue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IContinue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IContinue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IContinue_FContinue(This) \ - ( (This)->lpVtbl -> FContinue(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IContinue_INTERFACE_DEFINED__ */ - - -#ifndef __IViewObject_INTERFACE_DEFINED__ -#define __IViewObject_INTERFACE_DEFINED__ - -/* interface IViewObject */ -/* [uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IViewObject *LPVIEWOBJECT; - - -EXTERN_C const IID IID_IViewObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000010d-0000-0000-C000-000000000046") - IViewObject : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Draw( - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][unique][in] */ - _In_opt_ DVTARGETDEVICE *ptd, - /* [annotation][in] */ - _In_opt_ HDC hdcTargetDev, - /* [annotation][in] */ - _In_ HDC hdcDraw, - /* [annotation][in] */ - _In_opt_ LPCRECTL lprcBounds, - /* [annotation][unique][in] */ - _In_opt_ LPCRECTL lprcWBounds, - /* [annotation][in] */ - _In_opt_ BOOL ( STDMETHODCALLTYPE *pfnContinue )( - ULONG_PTR dwContinue), - /* [annotation][in] */ - _In_ ULONG_PTR dwContinue) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetColorSet( - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][unique][in] */ - _In_opt_ DVTARGETDEVICE *ptd, - /* [annotation][in] */ - _In_opt_ HDC hicTargetDev, - /* [annotation][out] */ - _Outptr_ LOGPALETTE **ppColorSet) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Freeze( - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][out] */ - _Out_ DWORD *pdwFreeze) = 0; - - virtual HRESULT STDMETHODCALLTYPE Unfreeze( - /* [in] */ DWORD dwFreeze) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAdvise( - /* [in] */ DWORD aspects, - /* [in] */ DWORD advf, - /* [unique][in] */ __RPC__in_opt IAdviseSink *pAdvSink) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetAdvise( - /* [annotation][unique][out] */ - _Out_opt_ DWORD *pAspects, - /* [annotation][unique][out] */ - _Out_opt_ DWORD *pAdvf, - /* [annotation][out] */ - _Outptr_ IAdviseSink **ppAdvSink) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IViewObjectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IViewObject * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IViewObject * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IViewObject * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Draw )( - IViewObject * This, - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][unique][in] */ - _In_opt_ DVTARGETDEVICE *ptd, - /* [annotation][in] */ - _In_opt_ HDC hdcTargetDev, - /* [annotation][in] */ - _In_ HDC hdcDraw, - /* [annotation][in] */ - _In_opt_ LPCRECTL lprcBounds, - /* [annotation][unique][in] */ - _In_opt_ LPCRECTL lprcWBounds, - /* [annotation][in] */ - _In_opt_ BOOL ( STDMETHODCALLTYPE *pfnContinue )( - ULONG_PTR dwContinue), - /* [annotation][in] */ - _In_ ULONG_PTR dwContinue); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetColorSet )( - IViewObject * This, - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][unique][in] */ - _In_opt_ DVTARGETDEVICE *ptd, - /* [annotation][in] */ - _In_opt_ HDC hicTargetDev, - /* [annotation][out] */ - _Outptr_ LOGPALETTE **ppColorSet); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Freeze )( - IViewObject * This, - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][out] */ - _Out_ DWORD *pdwFreeze); - - HRESULT ( STDMETHODCALLTYPE *Unfreeze )( - __RPC__in IViewObject * This, - /* [in] */ DWORD dwFreeze); - - HRESULT ( STDMETHODCALLTYPE *SetAdvise )( - __RPC__in IViewObject * This, - /* [in] */ DWORD aspects, - /* [in] */ DWORD advf, - /* [unique][in] */ __RPC__in_opt IAdviseSink *pAdvSink); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetAdvise )( - IViewObject * This, - /* [annotation][unique][out] */ - _Out_opt_ DWORD *pAspects, - /* [annotation][unique][out] */ - _Out_opt_ DWORD *pAdvf, - /* [annotation][out] */ - _Outptr_ IAdviseSink **ppAdvSink); - - END_INTERFACE - } IViewObjectVtbl; - - interface IViewObject - { - CONST_VTBL struct IViewObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IViewObject_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IViewObject_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IViewObject_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IViewObject_Draw(This,dwDrawAspect,lindex,pvAspect,ptd,hdcTargetDev,hdcDraw,lprcBounds,lprcWBounds,pfnContinue,dwContinue) \ - ( (This)->lpVtbl -> Draw(This,dwDrawAspect,lindex,pvAspect,ptd,hdcTargetDev,hdcDraw,lprcBounds,lprcWBounds,pfnContinue,dwContinue) ) - -#define IViewObject_GetColorSet(This,dwDrawAspect,lindex,pvAspect,ptd,hicTargetDev,ppColorSet) \ - ( (This)->lpVtbl -> GetColorSet(This,dwDrawAspect,lindex,pvAspect,ptd,hicTargetDev,ppColorSet) ) - -#define IViewObject_Freeze(This,dwDrawAspect,lindex,pvAspect,pdwFreeze) \ - ( (This)->lpVtbl -> Freeze(This,dwDrawAspect,lindex,pvAspect,pdwFreeze) ) - -#define IViewObject_Unfreeze(This,dwFreeze) \ - ( (This)->lpVtbl -> Unfreeze(This,dwFreeze) ) - -#define IViewObject_SetAdvise(This,aspects,advf,pAdvSink) \ - ( (This)->lpVtbl -> SetAdvise(This,aspects,advf,pAdvSink) ) - -#define IViewObject_GetAdvise(This,pAspects,pAdvf,ppAdvSink) \ - ( (This)->lpVtbl -> GetAdvise(This,pAspects,pAdvf,ppAdvSink) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IViewObject_RemoteDraw_Proxy( - __RPC__in IViewObject * This, - /* [in] */ DWORD dwDrawAspect, - /* [in] */ LONG lindex, - /* [in] */ ULONG_PTR pvAspect, - /* [unique][in] */ __RPC__in_opt DVTARGETDEVICE *ptd, - /* [in] */ __RPC__in HDC hdcTargetDev, - /* [in] */ __RPC__in HDC hdcDraw, - /* [unique][in] */ __RPC__in_opt LPCRECTL lprcBounds, - /* [unique][in] */ __RPC__in_opt LPCRECTL lprcWBounds, - /* [in] */ __RPC__in_opt IContinue *pContinue); - - -void __RPC_STUB IViewObject_RemoteDraw_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IViewObject_RemoteGetColorSet_Proxy( - __RPC__in IViewObject * This, - /* [in] */ DWORD dwDrawAspect, - /* [in] */ LONG lindex, - /* [in] */ ULONG_PTR pvAspect, - /* [unique][in] */ __RPC__in_opt DVTARGETDEVICE *ptd, - /* [in] */ ULONG_PTR hicTargetDev, - /* [out] */ __RPC__deref_out_opt LOGPALETTE **ppColorSet); - - -void __RPC_STUB IViewObject_RemoteGetColorSet_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IViewObject_RemoteFreeze_Proxy( - __RPC__in IViewObject * This, - /* [in] */ DWORD dwDrawAspect, - /* [in] */ LONG lindex, - /* [in] */ ULONG_PTR pvAspect, - /* [out] */ __RPC__out DWORD *pdwFreeze); - - -void __RPC_STUB IViewObject_RemoteFreeze_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IViewObject_RemoteGetAdvise_Proxy( - __RPC__in IViewObject * This, - /* [out] */ __RPC__out DWORD *pAspects, - /* [out] */ __RPC__out DWORD *pAdvf, - /* [out] */ __RPC__deref_out_opt IAdviseSink **ppAdvSink); - - -void __RPC_STUB IViewObject_RemoteGetAdvise_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IViewObject_INTERFACE_DEFINED__ */ - - -#ifndef __IViewObject2_INTERFACE_DEFINED__ -#define __IViewObject2_INTERFACE_DEFINED__ - -/* interface IViewObject2 */ -/* [uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IViewObject2 *LPVIEWOBJECT2; - - -EXTERN_C const IID IID_IViewObject2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000127-0000-0000-C000-000000000046") - IViewObject2 : public IViewObject - { - public: - virtual HRESULT STDMETHODCALLTYPE GetExtent( - /* [in] */ DWORD dwDrawAspect, - /* [in] */ LONG lindex, - /* [unique][in] */ __RPC__in_opt DVTARGETDEVICE *ptd, - /* [out] */ __RPC__out LPSIZEL lpsizel) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IViewObject2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IViewObject2 * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IViewObject2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IViewObject2 * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Draw )( - IViewObject2 * This, - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][unique][in] */ - _In_opt_ DVTARGETDEVICE *ptd, - /* [annotation][in] */ - _In_opt_ HDC hdcTargetDev, - /* [annotation][in] */ - _In_ HDC hdcDraw, - /* [annotation][in] */ - _In_opt_ LPCRECTL lprcBounds, - /* [annotation][unique][in] */ - _In_opt_ LPCRECTL lprcWBounds, - /* [annotation][in] */ - _In_opt_ BOOL ( STDMETHODCALLTYPE *pfnContinue )( - ULONG_PTR dwContinue), - /* [annotation][in] */ - _In_ ULONG_PTR dwContinue); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetColorSet )( - IViewObject2 * This, - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][unique][in] */ - _In_opt_ DVTARGETDEVICE *ptd, - /* [annotation][in] */ - _In_opt_ HDC hicTargetDev, - /* [annotation][out] */ - _Outptr_ LOGPALETTE **ppColorSet); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Freeze )( - IViewObject2 * This, - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][out] */ - _Out_ DWORD *pdwFreeze); - - HRESULT ( STDMETHODCALLTYPE *Unfreeze )( - __RPC__in IViewObject2 * This, - /* [in] */ DWORD dwFreeze); - - HRESULT ( STDMETHODCALLTYPE *SetAdvise )( - __RPC__in IViewObject2 * This, - /* [in] */ DWORD aspects, - /* [in] */ DWORD advf, - /* [unique][in] */ __RPC__in_opt IAdviseSink *pAdvSink); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetAdvise )( - IViewObject2 * This, - /* [annotation][unique][out] */ - _Out_opt_ DWORD *pAspects, - /* [annotation][unique][out] */ - _Out_opt_ DWORD *pAdvf, - /* [annotation][out] */ - _Outptr_ IAdviseSink **ppAdvSink); - - HRESULT ( STDMETHODCALLTYPE *GetExtent )( - __RPC__in IViewObject2 * This, - /* [in] */ DWORD dwDrawAspect, - /* [in] */ LONG lindex, - /* [unique][in] */ __RPC__in_opt DVTARGETDEVICE *ptd, - /* [out] */ __RPC__out LPSIZEL lpsizel); - - END_INTERFACE - } IViewObject2Vtbl; - - interface IViewObject2 - { - CONST_VTBL struct IViewObject2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IViewObject2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IViewObject2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IViewObject2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IViewObject2_Draw(This,dwDrawAspect,lindex,pvAspect,ptd,hdcTargetDev,hdcDraw,lprcBounds,lprcWBounds,pfnContinue,dwContinue) \ - ( (This)->lpVtbl -> Draw(This,dwDrawAspect,lindex,pvAspect,ptd,hdcTargetDev,hdcDraw,lprcBounds,lprcWBounds,pfnContinue,dwContinue) ) - -#define IViewObject2_GetColorSet(This,dwDrawAspect,lindex,pvAspect,ptd,hicTargetDev,ppColorSet) \ - ( (This)->lpVtbl -> GetColorSet(This,dwDrawAspect,lindex,pvAspect,ptd,hicTargetDev,ppColorSet) ) - -#define IViewObject2_Freeze(This,dwDrawAspect,lindex,pvAspect,pdwFreeze) \ - ( (This)->lpVtbl -> Freeze(This,dwDrawAspect,lindex,pvAspect,pdwFreeze) ) - -#define IViewObject2_Unfreeze(This,dwFreeze) \ - ( (This)->lpVtbl -> Unfreeze(This,dwFreeze) ) - -#define IViewObject2_SetAdvise(This,aspects,advf,pAdvSink) \ - ( (This)->lpVtbl -> SetAdvise(This,aspects,advf,pAdvSink) ) - -#define IViewObject2_GetAdvise(This,pAspects,pAdvf,ppAdvSink) \ - ( (This)->lpVtbl -> GetAdvise(This,pAspects,pAdvf,ppAdvSink) ) - - -#define IViewObject2_GetExtent(This,dwDrawAspect,lindex,ptd,lpsizel) \ - ( (This)->lpVtbl -> GetExtent(This,dwDrawAspect,lindex,ptd,lpsizel) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IViewObject2_INTERFACE_DEFINED__ */ - - -#ifndef __IDropSource_INTERFACE_DEFINED__ -#define __IDropSource_INTERFACE_DEFINED__ - -/* interface IDropSource */ -/* [uuid][object][local] */ - -typedef /* [unique] */ IDropSource *LPDROPSOURCE; - - -EXTERN_C const IID IID_IDropSource; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000121-0000-0000-C000-000000000046") - IDropSource : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE QueryContinueDrag( - /* [annotation][in] */ - _In_ BOOL fEscapePressed, - /* [annotation][in] */ - _In_ DWORD grfKeyState) = 0; - - virtual HRESULT STDMETHODCALLTYPE GiveFeedback( - /* [annotation][in] */ - _In_ DWORD dwEffect) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDropSourceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDropSource * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDropSource * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDropSource * This); - - HRESULT ( STDMETHODCALLTYPE *QueryContinueDrag )( - IDropSource * This, - /* [annotation][in] */ - _In_ BOOL fEscapePressed, - /* [annotation][in] */ - _In_ DWORD grfKeyState); - - HRESULT ( STDMETHODCALLTYPE *GiveFeedback )( - IDropSource * This, - /* [annotation][in] */ - _In_ DWORD dwEffect); - - END_INTERFACE - } IDropSourceVtbl; - - interface IDropSource - { - CONST_VTBL struct IDropSourceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDropSource_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDropSource_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDropSource_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDropSource_QueryContinueDrag(This,fEscapePressed,grfKeyState) \ - ( (This)->lpVtbl -> QueryContinueDrag(This,fEscapePressed,grfKeyState) ) - -#define IDropSource_GiveFeedback(This,dwEffect) \ - ( (This)->lpVtbl -> GiveFeedback(This,dwEffect) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDropSource_INTERFACE_DEFINED__ */ - - -#ifndef __IDropTarget_INTERFACE_DEFINED__ -#define __IDropTarget_INTERFACE_DEFINED__ - -/* interface IDropTarget */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IDropTarget *LPDROPTARGET; - -#define MK_ALT ( 0x20 ) - -#define DROPEFFECT_NONE ( 0 ) - -#define DROPEFFECT_COPY ( 1 ) - -#define DROPEFFECT_MOVE ( 2 ) - -#define DROPEFFECT_LINK ( 4 ) - -#define DROPEFFECT_SCROLL ( 0x80000000 ) - -// default inset-width of the hot zone, in pixels -// typical use: GetProfileInt("windows","DragScrollInset",DD_DEFSCROLLINSET) -#define DD_DEFSCROLLINSET ( 11 ) - -// default delay before scrolling, in milliseconds -// typical use: GetProfileInt("windows","DragScrollDelay",DD_DEFSCROLLDELAY) -#define DD_DEFSCROLLDELAY ( 50 ) - -// default scroll interval, in milliseconds -// typical use: GetProfileInt("windows","DragScrollInterval", DD_DEFSCROLLINTERVAL) -#define DD_DEFSCROLLINTERVAL ( 50 ) - -// default delay before dragging should start, in milliseconds -// typical use: GetProfileInt("windows", "DragDelay", DD_DEFDRAGDELAY) -#define DD_DEFDRAGDELAY ( 200 ) - -// default minimum distance (radius) before dragging should start, in pixels -// typical use: GetProfileInt("windows", "DragMinDist", DD_DEFDRAGMINDIST) -#define DD_DEFDRAGMINDIST ( 2 ) - - -EXTERN_C const IID IID_IDropTarget; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000122-0000-0000-C000-000000000046") - IDropTarget : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE DragEnter( - /* [unique][in] */ __RPC__in_opt IDataObject *pDataObj, - /* [in] */ DWORD grfKeyState, - /* [in] */ POINTL pt, - /* [out][in] */ __RPC__inout DWORD *pdwEffect) = 0; - - virtual HRESULT STDMETHODCALLTYPE DragOver( - /* [in] */ DWORD grfKeyState, - /* [in] */ POINTL pt, - /* [out][in] */ __RPC__inout DWORD *pdwEffect) = 0; - - virtual HRESULT STDMETHODCALLTYPE DragLeave( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Drop( - /* [unique][in] */ __RPC__in_opt IDataObject *pDataObj, - /* [in] */ DWORD grfKeyState, - /* [in] */ POINTL pt, - /* [out][in] */ __RPC__inout DWORD *pdwEffect) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDropTargetVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IDropTarget * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IDropTarget * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IDropTarget * This); - - HRESULT ( STDMETHODCALLTYPE *DragEnter )( - __RPC__in IDropTarget * This, - /* [unique][in] */ __RPC__in_opt IDataObject *pDataObj, - /* [in] */ DWORD grfKeyState, - /* [in] */ POINTL pt, - /* [out][in] */ __RPC__inout DWORD *pdwEffect); - - HRESULT ( STDMETHODCALLTYPE *DragOver )( - __RPC__in IDropTarget * This, - /* [in] */ DWORD grfKeyState, - /* [in] */ POINTL pt, - /* [out][in] */ __RPC__inout DWORD *pdwEffect); - - HRESULT ( STDMETHODCALLTYPE *DragLeave )( - __RPC__in IDropTarget * This); - - HRESULT ( STDMETHODCALLTYPE *Drop )( - __RPC__in IDropTarget * This, - /* [unique][in] */ __RPC__in_opt IDataObject *pDataObj, - /* [in] */ DWORD grfKeyState, - /* [in] */ POINTL pt, - /* [out][in] */ __RPC__inout DWORD *pdwEffect); - - END_INTERFACE - } IDropTargetVtbl; - - interface IDropTarget - { - CONST_VTBL struct IDropTargetVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDropTarget_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDropTarget_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDropTarget_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDropTarget_DragEnter(This,pDataObj,grfKeyState,pt,pdwEffect) \ - ( (This)->lpVtbl -> DragEnter(This,pDataObj,grfKeyState,pt,pdwEffect) ) - -#define IDropTarget_DragOver(This,grfKeyState,pt,pdwEffect) \ - ( (This)->lpVtbl -> DragOver(This,grfKeyState,pt,pdwEffect) ) - -#define IDropTarget_DragLeave(This) \ - ( (This)->lpVtbl -> DragLeave(This) ) - -#define IDropTarget_Drop(This,pDataObj,grfKeyState,pt,pdwEffect) \ - ( (This)->lpVtbl -> Drop(This,pDataObj,grfKeyState,pt,pdwEffect) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDropTarget_INTERFACE_DEFINED__ */ - - -#ifndef __IDropSourceNotify_INTERFACE_DEFINED__ -#define __IDropSourceNotify_INTERFACE_DEFINED__ - -/* interface IDropSourceNotify */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IDropSourceNotify; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0000012B-0000-0000-C000-000000000046") - IDropSourceNotify : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE DragEnterTarget( - /* [annotation][in] */ - _In_ HWND hwndTarget) = 0; - - virtual HRESULT STDMETHODCALLTYPE DragLeaveTarget( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDropSourceNotifyVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDropSourceNotify * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDropSourceNotify * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDropSourceNotify * This); - - HRESULT ( STDMETHODCALLTYPE *DragEnterTarget )( - IDropSourceNotify * This, - /* [annotation][in] */ - _In_ HWND hwndTarget); - - HRESULT ( STDMETHODCALLTYPE *DragLeaveTarget )( - IDropSourceNotify * This); - - END_INTERFACE - } IDropSourceNotifyVtbl; - - interface IDropSourceNotify - { - CONST_VTBL struct IDropSourceNotifyVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDropSourceNotify_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDropSourceNotify_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDropSourceNotify_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDropSourceNotify_DragEnterTarget(This,hwndTarget) \ - ( (This)->lpVtbl -> DragEnterTarget(This,hwndTarget) ) - -#define IDropSourceNotify_DragLeaveTarget(This) \ - ( (This)->lpVtbl -> DragLeaveTarget(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDropSourceNotify_INTERFACE_DEFINED__ */ - - -#ifndef __IEnterpriseDropTarget_INTERFACE_DEFINED__ -#define __IEnterpriseDropTarget_INTERFACE_DEFINED__ - -/* interface IEnterpriseDropTarget */ -/* [unique][uuid][object] */ - - -EXTERN_C const IID IID_IEnterpriseDropTarget; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("390E3878-FD55-4E18-819D-4682081C0CFD") - IEnterpriseDropTarget : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetDropSourceEnterpriseId( - /* [in] */ __RPC__in LPCWSTR identity) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsEvaluatingEdpPolicy( - /* [retval][out] */ __RPC__out BOOL *value) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnterpriseDropTargetVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnterpriseDropTarget * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnterpriseDropTarget * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnterpriseDropTarget * This); - - HRESULT ( STDMETHODCALLTYPE *SetDropSourceEnterpriseId )( - __RPC__in IEnterpriseDropTarget * This, - /* [in] */ __RPC__in LPCWSTR identity); - - HRESULT ( STDMETHODCALLTYPE *IsEvaluatingEdpPolicy )( - __RPC__in IEnterpriseDropTarget * This, - /* [retval][out] */ __RPC__out BOOL *value); - - END_INTERFACE - } IEnterpriseDropTargetVtbl; - - interface IEnterpriseDropTarget - { - CONST_VTBL struct IEnterpriseDropTargetVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnterpriseDropTarget_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnterpriseDropTarget_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnterpriseDropTarget_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnterpriseDropTarget_SetDropSourceEnterpriseId(This,identity) \ - ( (This)->lpVtbl -> SetDropSourceEnterpriseId(This,identity) ) - -#define IEnterpriseDropTarget_IsEvaluatingEdpPolicy(This,value) \ - ( (This)->lpVtbl -> IsEvaluatingEdpPolicy(This,value) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IEnterpriseDropTarget_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_oleidl_0000_0024 */ -/* [local] */ - -#define CFSTR_ENTERPRISE_ID (TEXT("EnterpriseDataProtectionId")) -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Application Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0024_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0024_v0_0_s_ifspec; - -#ifndef __IEnumOLEVERB_INTERFACE_DEFINED__ -#define __IEnumOLEVERB_INTERFACE_DEFINED__ - -/* interface IEnumOLEVERB */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IEnumOLEVERB *LPENUMOLEVERB; - -typedef struct tagOLEVERB - { - LONG lVerb; - LPOLESTR lpszVerbName; - DWORD fuFlags; - DWORD grfAttribs; - } OLEVERB; - -typedef struct tagOLEVERB *LPOLEVERB; - -typedef /* [v1_enum] */ -enum tagOLEVERBATTRIB - { - OLEVERBATTRIB_NEVERDIRTIES = 1, - OLEVERBATTRIB_ONCONTAINERMENU = 2 - } OLEVERBATTRIB; - - -EXTERN_C const IID IID_IEnumOLEVERB; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00000104-0000-0000-C000-000000000046") - IEnumOLEVERB : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) LPOLEVERB rgelt, - /* [annotation][out] */ - _Out_opt_ ULONG *pceltFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ __RPC__deref_out_opt IEnumOLEVERB **ppenum) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEnumOLEVERBVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IEnumOLEVERB * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IEnumOLEVERB * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IEnumOLEVERB * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( - IEnumOLEVERB * This, - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) LPOLEVERB rgelt, - /* [annotation][out] */ - _Out_opt_ ULONG *pceltFetched); - - HRESULT ( STDMETHODCALLTYPE *Skip )( - __RPC__in IEnumOLEVERB * This, - /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - __RPC__in IEnumOLEVERB * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( - __RPC__in IEnumOLEVERB * This, - /* [out] */ __RPC__deref_out_opt IEnumOLEVERB **ppenum); - - END_INTERFACE - } IEnumOLEVERBVtbl; - - interface IEnumOLEVERB - { - CONST_VTBL struct IEnumOLEVERBVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEnumOLEVERB_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEnumOLEVERB_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEnumOLEVERB_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEnumOLEVERB_Next(This,celt,rgelt,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) - -#define IEnumOLEVERB_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define IEnumOLEVERB_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define IEnumOLEVERB_Clone(This,ppenum) \ - ( (This)->lpVtbl -> Clone(This,ppenum) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumOLEVERB_RemoteNext_Proxy( - __RPC__in IEnumOLEVERB * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) LPOLEVERB rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - -void __RPC_STUB IEnumOLEVERB_RemoteNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IEnumOLEVERB_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_oleidl_0000_0025 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#if _MSC_VER >= 1200 -#pragma warning(pop) -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0025_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0025_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -unsigned long __RPC_USER CLIPFORMAT_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in CLIPFORMAT * ); -unsigned char * __RPC_USER CLIPFORMAT_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in CLIPFORMAT * ); -unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out CLIPFORMAT * ); -void __RPC_USER CLIPFORMAT_UserFree( __RPC__in unsigned long *, __RPC__in CLIPFORMAT * ); - -unsigned long __RPC_USER HACCEL_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in HACCEL * ); -unsigned char * __RPC_USER HACCEL_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HACCEL * ); -unsigned char * __RPC_USER HACCEL_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HACCEL * ); -void __RPC_USER HACCEL_UserFree( __RPC__in unsigned long *, __RPC__in HACCEL * ); - -unsigned long __RPC_USER HDC_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in HDC * ); -unsigned char * __RPC_USER HDC_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HDC * ); -unsigned char * __RPC_USER HDC_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HDC * ); -void __RPC_USER HDC_UserFree( __RPC__in unsigned long *, __RPC__in HDC * ); - -unsigned long __RPC_USER HGLOBAL_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in HGLOBAL * ); -unsigned char * __RPC_USER HGLOBAL_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HGLOBAL * ); -unsigned char * __RPC_USER HGLOBAL_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HGLOBAL * ); -void __RPC_USER HGLOBAL_UserFree( __RPC__in unsigned long *, __RPC__in HGLOBAL * ); - -unsigned long __RPC_USER HMENU_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in HMENU * ); -unsigned char * __RPC_USER HMENU_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HMENU * ); -unsigned char * __RPC_USER HMENU_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HMENU * ); -void __RPC_USER HMENU_UserFree( __RPC__in unsigned long *, __RPC__in HMENU * ); - -unsigned long __RPC_USER HWND_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in HWND * ); -unsigned char * __RPC_USER HWND_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HWND * ); -unsigned char * __RPC_USER HWND_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HWND * ); -void __RPC_USER HWND_UserFree( __RPC__in unsigned long *, __RPC__in HWND * ); - -unsigned long __RPC_USER STGMEDIUM_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in STGMEDIUM * ); -unsigned char * __RPC_USER STGMEDIUM_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in STGMEDIUM * ); -unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out STGMEDIUM * ); -void __RPC_USER STGMEDIUM_UserFree( __RPC__in unsigned long *, __RPC__in STGMEDIUM * ); - -unsigned long __RPC_USER CLIPFORMAT_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in CLIPFORMAT * ); -unsigned char * __RPC_USER CLIPFORMAT_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in CLIPFORMAT * ); -unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out CLIPFORMAT * ); -void __RPC_USER CLIPFORMAT_UserFree64( __RPC__in unsigned long *, __RPC__in CLIPFORMAT * ); - -unsigned long __RPC_USER HACCEL_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in HACCEL * ); -unsigned char * __RPC_USER HACCEL_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HACCEL * ); -unsigned char * __RPC_USER HACCEL_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HACCEL * ); -void __RPC_USER HACCEL_UserFree64( __RPC__in unsigned long *, __RPC__in HACCEL * ); - -unsigned long __RPC_USER HDC_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in HDC * ); -unsigned char * __RPC_USER HDC_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HDC * ); -unsigned char * __RPC_USER HDC_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HDC * ); -void __RPC_USER HDC_UserFree64( __RPC__in unsigned long *, __RPC__in HDC * ); - -unsigned long __RPC_USER HGLOBAL_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in HGLOBAL * ); -unsigned char * __RPC_USER HGLOBAL_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HGLOBAL * ); -unsigned char * __RPC_USER HGLOBAL_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HGLOBAL * ); -void __RPC_USER HGLOBAL_UserFree64( __RPC__in unsigned long *, __RPC__in HGLOBAL * ); - -unsigned long __RPC_USER HMENU_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in HMENU * ); -unsigned char * __RPC_USER HMENU_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HMENU * ); -unsigned char * __RPC_USER HMENU_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HMENU * ); -void __RPC_USER HMENU_UserFree64( __RPC__in unsigned long *, __RPC__in HMENU * ); - -unsigned long __RPC_USER HWND_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in HWND * ); -unsigned char * __RPC_USER HWND_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HWND * ); -unsigned char * __RPC_USER HWND_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HWND * ); -void __RPC_USER HWND_UserFree64( __RPC__in unsigned long *, __RPC__in HWND * ); - -unsigned long __RPC_USER STGMEDIUM_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in STGMEDIUM * ); -unsigned char * __RPC_USER STGMEDIUM_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in STGMEDIUM * ); -unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out STGMEDIUM * ); -void __RPC_USER STGMEDIUM_UserFree64( __RPC__in unsigned long *, __RPC__in STGMEDIUM * ); - -/* [local] */ HRESULT STDMETHODCALLTYPE IOleCache2_UpdateCache_Proxy( - IOleCache2 * This, - /* [annotation][in] */ - _In_ LPDATAOBJECT pDataObject, - /* [annotation][in] */ - _In_ DWORD grfUpdf, - /* [annotation][in] */ - _Reserved_ LPVOID pReserved); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IOleCache2_UpdateCache_Stub( - __RPC__in IOleCache2 * This, - /* [in] */ __RPC__in_opt LPDATAOBJECT pDataObject, - /* [in] */ DWORD grfUpdf, - /* [in] */ LONG_PTR pReserved); - -/* [local] */ HRESULT STDMETHODCALLTYPE IOleInPlaceActiveObject_TranslateAccelerator_Proxy( - IOleInPlaceActiveObject * This, - /* [annotation][in] */ - _In_opt_ LPMSG lpmsg); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IOleInPlaceActiveObject_TranslateAccelerator_Stub( - __RPC__in IOleInPlaceActiveObject * This); - -/* [local] */ HRESULT STDMETHODCALLTYPE IOleInPlaceActiveObject_ResizeBorder_Proxy( - IOleInPlaceActiveObject * This, - /* [annotation][in] */ - _In_ LPCRECT prcBorder, - /* [annotation][unique][in] */ - _In_ IOleInPlaceUIWindow *pUIWindow, - /* [annotation][in] */ - _In_ BOOL fFrameWindow); - - -/* [input_sync][call_as] */ HRESULT STDMETHODCALLTYPE IOleInPlaceActiveObject_ResizeBorder_Stub( - __RPC__in IOleInPlaceActiveObject * This, - /* [in] */ __RPC__in LPCRECT prcBorder, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][unique][in] */ __RPC__in_opt IOleInPlaceUIWindow *pUIWindow, - /* [in] */ BOOL fFrameWindow); - -/* [local] */ HRESULT STDMETHODCALLTYPE IViewObject_Draw_Proxy( - IViewObject * This, - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][unique][in] */ - _In_opt_ DVTARGETDEVICE *ptd, - /* [annotation][in] */ - _In_opt_ HDC hdcTargetDev, - /* [annotation][in] */ - _In_ HDC hdcDraw, - /* [annotation][in] */ - _In_opt_ LPCRECTL lprcBounds, - /* [annotation][unique][in] */ - _In_opt_ LPCRECTL lprcWBounds, - /* [annotation][in] */ - _In_opt_ BOOL ( STDMETHODCALLTYPE *pfnContinue )( - ULONG_PTR dwContinue), - /* [annotation][in] */ - _In_ ULONG_PTR dwContinue); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IViewObject_Draw_Stub( - __RPC__in IViewObject * This, - /* [in] */ DWORD dwDrawAspect, - /* [in] */ LONG lindex, - /* [in] */ ULONG_PTR pvAspect, - /* [unique][in] */ __RPC__in_opt DVTARGETDEVICE *ptd, - /* [in] */ __RPC__in HDC hdcTargetDev, - /* [in] */ __RPC__in HDC hdcDraw, - /* [unique][in] */ __RPC__in_opt LPCRECTL lprcBounds, - /* [unique][in] */ __RPC__in_opt LPCRECTL lprcWBounds, - /* [in] */ __RPC__in_opt IContinue *pContinue); - -/* [local] */ HRESULT STDMETHODCALLTYPE IViewObject_GetColorSet_Proxy( - IViewObject * This, - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][unique][in] */ - _In_opt_ DVTARGETDEVICE *ptd, - /* [annotation][in] */ - _In_opt_ HDC hicTargetDev, - /* [annotation][out] */ - _Outptr_ LOGPALETTE **ppColorSet); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IViewObject_GetColorSet_Stub( - __RPC__in IViewObject * This, - /* [in] */ DWORD dwDrawAspect, - /* [in] */ LONG lindex, - /* [in] */ ULONG_PTR pvAspect, - /* [unique][in] */ __RPC__in_opt DVTARGETDEVICE *ptd, - /* [in] */ ULONG_PTR hicTargetDev, - /* [out] */ __RPC__deref_out_opt LOGPALETTE **ppColorSet); - -/* [local] */ HRESULT STDMETHODCALLTYPE IViewObject_Freeze_Proxy( - IViewObject * This, - /* [annotation][in] */ - _In_ DWORD dwDrawAspect, - /* [annotation][in] */ - _In_ LONG lindex, - /* [annotation][unique][in] */ - _Null_ void *pvAspect, - /* [annotation][out] */ - _Out_ DWORD *pdwFreeze); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IViewObject_Freeze_Stub( - __RPC__in IViewObject * This, - /* [in] */ DWORD dwDrawAspect, - /* [in] */ LONG lindex, - /* [in] */ ULONG_PTR pvAspect, - /* [out] */ __RPC__out DWORD *pdwFreeze); - -/* [local] */ HRESULT STDMETHODCALLTYPE IViewObject_GetAdvise_Proxy( - IViewObject * This, - /* [annotation][unique][out] */ - _Out_opt_ DWORD *pAspects, - /* [annotation][unique][out] */ - _Out_opt_ DWORD *pAdvf, - /* [annotation][out] */ - _Outptr_ IAdviseSink **ppAdvSink); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IViewObject_GetAdvise_Stub( - __RPC__in IViewObject * This, - /* [out] */ __RPC__out DWORD *pAspects, - /* [out] */ __RPC__out DWORD *pAdvf, - /* [out] */ __RPC__deref_out_opt IAdviseSink **ppAdvSink); - -/* [local] */ HRESULT STDMETHODCALLTYPE IEnumOLEVERB_Next_Proxy( - IEnumOLEVERB * This, - /* [annotation][in] */ - _In_ ULONG celt, - /* [annotation][length_is][size_is][out] */ - _Out_writes_to_(celt, *pceltFetched) LPOLEVERB rgelt, - /* [annotation][out] */ - _Out_opt_ ULONG *pceltFetched); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumOLEVERB_Next_Stub( - __RPC__in IEnumOLEVERB * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) LPOLEVERB rgelt, - /* [out] */ __RPC__out ULONG *pceltFetched); - - - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/custom/winsdk/include/um/rpcnsi.h b/src/custom/winsdk/include/um/rpcnsi.h deleted file mode 100644 index aaafec1..0000000 --- a/src/custom/winsdk/include/um/rpcnsi.h +++ /dev/null @@ -1,563 +0,0 @@ -#include - -/*++ - -Copyright (c) Microsoft Corporation. All rights reserved. - -Module Name: - - rpcnsi.h - -Abstract: - - This file contains the types and function definitions to use the - Name Service Independent APIs. - ---*/ - -#ifndef __RPCNSI_H__ -#define __RPCNSI_H__ - -#if _MSC_VER > 1000 -#pragma once -#endif - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -typedef void __RPC_FAR * RPC_NS_HANDLE; - -#define RPC_C_NS_SYNTAX_DEFAULT 0 -#define RPC_C_NS_SYNTAX_DCE 3 - -#define RPC_C_PROFILE_DEFAULT_ELT 0 -#define RPC_C_PROFILE_ALL_ELT 1 -#define RPC_C_PROFILE_ALL_ELTS RPC_C_PROFILE_ALL_ELT -#define RPC_C_PROFILE_MATCH_BY_IF 2 -#define RPC_C_PROFILE_MATCH_BY_MBR 3 -#define RPC_C_PROFILE_MATCH_BY_BOTH 4 - -#define RPC_C_NS_DEFAULT_EXP_AGE -1 - -/* Server APIs */ - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingExportA( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_CSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ RPC_BINDING_VECTOR __RPC_FAR *BindingVec, - _In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec - ); - - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingUnexportA( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_CSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec - ); - -#ifdef RPC_UNICODE_SUPPORTED - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingExportW( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_WSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ RPC_BINDING_VECTOR __RPC_FAR *BindingVec, - _In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingUnexportW( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_WSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec - ); - -#endif - -/* Server PnP APIs */ - -RPC_STATUS RPC_ENTRY -RpcNsBindingExportPnPA( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_CSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ UUID_VECTOR *ObjectVector - ); - -RPC_STATUS RPC_ENTRY -RpcNsBindingUnexportPnPA( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_CSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ UUID_VECTOR *ObjectVector - ); - -#ifdef RPC_UNICODE_SUPPORTED - -RPC_STATUS RPC_ENTRY -RpcNsBindingExportPnPW( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_WSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ UUID_VECTOR *ObjectVector - ); - -RPC_STATUS RPC_ENTRY -RpcNsBindingUnexportPnPW( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_WSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ UUID_VECTOR *ObjectVector - ); - -#endif - -/* Client APIs */ - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingLookupBeginA( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_CSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ UUID __RPC_FAR *ObjUuid, - _In_ unsigned long BindingMaxCount, - _Out_ RPC_NS_HANDLE __RPC_FAR *LookupContext - ); - -#ifdef RPC_UNICODE_SUPPORTED - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingLookupBeginW( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_WSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ UUID __RPC_FAR *ObjUuid, - _In_ unsigned long BindingMaxCount, - _Out_ RPC_NS_HANDLE __RPC_FAR *LookupContext - ); -#endif - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingLookupNext( - IN RPC_NS_HANDLE LookupContext, - OUT RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVec - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingLookupDone( - IN OUT RPC_NS_HANDLE __RPC_FAR * LookupContext - ); - -/* Group APIs */ - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsGroupDeleteA( - _In_ unsigned long GroupNameSyntax, - _In_opt_ RPC_CSTR GroupName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsGroupMbrAddA( - _In_ unsigned long GroupNameSyntax, - _In_ RPC_CSTR GroupName, - _In_ unsigned long MemberNameSyntax, - _In_ RPC_CSTR MemberName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsGroupMbrRemoveA( - _In_ unsigned long GroupNameSyntax, - _In_ RPC_CSTR GroupName, - _In_ unsigned long MemberNameSyntax, - _In_ RPC_CSTR MemberName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsGroupMbrInqBeginA( - _In_ unsigned long GroupNameSyntax, - _In_ RPC_CSTR GroupName, - _In_ unsigned long MemberNameSyntax, - _Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsGroupMbrInqNextA( - _Inout_ RPC_NS_HANDLE InquiryContext, - _Outptr_ RPC_CSTR __RPC_FAR *MemberName - ); - -#ifdef RPC_UNICODE_SUPPORTED - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsGroupDeleteW( - _In_ unsigned long GroupNameSyntax, - _In_opt_ RPC_WSTR GroupName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsGroupMbrAddW( - _In_ unsigned long GroupNameSyntax, - _In_ RPC_WSTR GroupName, - _In_ unsigned long MemberNameSyntax, - _In_ RPC_WSTR MemberName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsGroupMbrRemoveW( - _In_ unsigned long GroupNameSyntax, - _In_ RPC_WSTR GroupName, - _In_ unsigned long MemberNameSyntax, - _In_ RPC_WSTR MemberName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsGroupMbrInqBeginW( - _In_ unsigned long GroupNameSyntax, - _In_ RPC_WSTR GroupName, - _In_ unsigned long MemberNameSyntax, - _Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsGroupMbrInqNextW( - _Inout_ RPC_NS_HANDLE InquiryContext, - _Outptr_ RPC_WSTR __RPC_FAR *MemberName - ); - -#endif - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsGroupMbrInqDone( - IN OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext - ); - -/* Profile APIs */ - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsProfileDeleteA( - _In_ unsigned long ProfileNameSyntax, - _In_ RPC_CSTR ProfileName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsProfileEltAddA( - _In_ unsigned long ProfileNameSyntax, - _In_ RPC_CSTR ProfileName, - _In_opt_ RPC_IF_ID __RPC_FAR *IfId, - _In_ unsigned long MemberNameSyntax, - _In_ RPC_CSTR MemberName, - _In_ unsigned long Priority, - _In_opt_ RPC_CSTR Annotation - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsProfileEltRemoveA( - _In_ unsigned long ProfileNameSyntax, - _In_ RPC_CSTR ProfileName, - _In_opt_ RPC_IF_ID __RPC_FAR *IfId, - _In_ unsigned long MemberNameSyntax, - _In_ RPC_CSTR MemberName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsProfileEltInqBeginA( - _In_ unsigned long ProfileNameSyntax, - _In_ RPC_CSTR ProfileName, - _In_ unsigned long InquiryType, - _In_opt_ RPC_IF_ID __RPC_FAR *IfId, - _In_ unsigned long VersOption, - _In_ unsigned long MemberNameSyntax, - _In_opt_ RPC_CSTR MemberName, - _Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsProfileEltInqNextA( - _In_ RPC_NS_HANDLE InquiryContext, - _Out_opt_ RPC_IF_ID __RPC_FAR *IfId, - _Out_ RPC_CSTR __RPC_FAR *MemberName, - _Out_ unsigned long __RPC_FAR *Priority, - _Out_ RPC_CSTR __RPC_FAR *Annotation - ); - -#ifdef RPC_UNICODE_SUPPORTED - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsProfileDeleteW( - _In_ unsigned long ProfileNameSyntax, - _In_ RPC_WSTR ProfileName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsProfileEltAddW( - _In_ unsigned long ProfileNameSyntax, - _In_ RPC_WSTR ProfileName, - _In_opt_ RPC_IF_ID __RPC_FAR *IfId, - _In_ unsigned long MemberNameSyntax, - _In_ RPC_WSTR MemberName, - _In_ unsigned long Priority, - _In_opt_ RPC_WSTR Annotation - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsProfileEltRemoveW( - _In_ unsigned long ProfileNameSyntax, - _In_ RPC_WSTR ProfileName, - _In_opt_ RPC_IF_ID __RPC_FAR *IfId, - _In_ unsigned long MemberNameSyntax, - _In_ RPC_WSTR MemberName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsProfileEltInqBeginW( - _In_ unsigned long ProfileNameSyntax, - _In_ RPC_WSTR ProfileName, - _In_ unsigned long InquiryType, - _In_opt_ RPC_IF_ID __RPC_FAR *IfId, - _In_ unsigned long VersOption, - _In_ unsigned long MemberNameSyntax, - _In_opt_ RPC_WSTR MemberName, - _Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsProfileEltInqNextW( - _In_ RPC_NS_HANDLE InquiryContext, - _Out_opt_ RPC_IF_ID __RPC_FAR *IfId, - _Out_ RPC_WSTR __RPC_FAR *MemberName, - _Out_ unsigned long __RPC_FAR *Priority, - _Out_ RPC_WSTR __RPC_FAR *Annotation - ); - -#endif - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsProfileEltInqDone( - IN OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext - ); - -/* Entry object APIs */ - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsEntryObjectInqBeginA( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_CSTR EntryName, - _Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext - ); - -#ifdef RPC_UNICODE_SUPPORTED - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsEntryObjectInqBeginW( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_WSTR EntryName, - _Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext - ); - -#endif - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsEntryObjectInqNext( - IN RPC_NS_HANDLE InquiryContext, - OUT UUID __RPC_FAR * ObjUuid - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsEntryObjectInqDone( - IN OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext - ); - -/* Management and MISC APIs */ - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsEntryExpandNameA( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_CSTR EntryName, - _Out_ RPC_CSTR __RPC_FAR *ExpandedName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsMgmtBindingUnexportA( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_CSTR EntryName, - _In_opt_ RPC_IF_ID __RPC_FAR *IfId, - _In_ unsigned long VersOption, - _In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsMgmtEntryCreateA( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_CSTR EntryName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsMgmtEntryDeleteA( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_CSTR EntryName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsMgmtEntryInqIfIdsA( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_CSTR EntryName, - _Out_ RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR *IfIdVec - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsMgmtHandleSetExpAge( - IN RPC_NS_HANDLE NsHandle, - IN unsigned long ExpirationAge - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsMgmtInqExpAge( - OUT unsigned long __RPC_FAR * ExpirationAge - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsMgmtSetExpAge( - IN unsigned long ExpirationAge - ); - -#ifdef RPC_UNICODE_SUPPORTED - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsEntryExpandNameW( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_WSTR EntryName, - _Out_ RPC_WSTR __RPC_FAR *ExpandedName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsMgmtBindingUnexportW( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_WSTR EntryName, - _In_opt_ RPC_IF_ID __RPC_FAR *IfId, - _In_ unsigned long VersOption, - _In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsMgmtEntryCreateW( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_WSTR EntryName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsMgmtEntryDeleteW( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_WSTR EntryName - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsMgmtEntryInqIfIdsW( - _In_ unsigned long EntryNameSyntax, - _In_ RPC_WSTR EntryName, - _Out_ RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR *IfIdVec - ); - -#endif - -/* Client API's implemented in wrappers. */ - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingImportBeginA( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_CSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ UUID __RPC_FAR *ObjUuid, - _Out_ RPC_NS_HANDLE __RPC_FAR *ImportContext - ); - -#ifdef RPC_UNICODE_SUPPORTED - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingImportBeginW( - _In_ unsigned long EntryNameSyntax, - _In_opt_ RPC_WSTR EntryName, - _In_opt_ RPC_IF_HANDLE IfSpec, - _In_opt_ UUID __RPC_FAR *ObjUuid, - _Out_ RPC_NS_HANDLE __RPC_FAR *ImportContext - ); - -#endif - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingImportNext( - IN RPC_NS_HANDLE ImportContext, - OUT RPC_BINDING_HANDLE __RPC_FAR * Binding - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingImportDone( - IN OUT RPC_NS_HANDLE __RPC_FAR * ImportContext - ); - -RPCNSAPI RPC_STATUS RPC_ENTRY -RpcNsBindingSelect( - IN OUT RPC_BINDING_VECTOR __RPC_FAR * BindingVec, - OUT RPC_BINDING_HANDLE __RPC_FAR * Binding - ); - -#ifdef UNICODE - -#define RpcNsBindingLookupBegin RpcNsBindingLookupBeginW -#define RpcNsBindingImportBegin RpcNsBindingImportBeginW -#define RpcNsBindingExport RpcNsBindingExportW -#define RpcNsBindingUnexport RpcNsBindingUnexportW -#define RpcNsGroupDelete RpcNsGroupDeleteW -#define RpcNsGroupMbrAdd RpcNsGroupMbrAddW -#define RpcNsGroupMbrRemove RpcNsGroupMbrRemoveW -#define RpcNsGroupMbrInqBegin RpcNsGroupMbrInqBeginW -#define RpcNsGroupMbrInqNext RpcNsGroupMbrInqNextW -#define RpcNsEntryExpandName RpcNsEntryExpandNameW -#define RpcNsEntryObjectInqBegin RpcNsEntryObjectInqBeginW -#define RpcNsMgmtBindingUnexport RpcNsMgmtBindingUnexportW -#define RpcNsMgmtEntryCreate RpcNsMgmtEntryCreateW -#define RpcNsMgmtEntryDelete RpcNsMgmtEntryDeleteW -#define RpcNsMgmtEntryInqIfIds RpcNsMgmtEntryInqIfIdsW -#define RpcNsProfileDelete RpcNsProfileDeleteW -#define RpcNsProfileEltAdd RpcNsProfileEltAddW -#define RpcNsProfileEltRemove RpcNsProfileEltRemoveW -#define RpcNsProfileEltInqBegin RpcNsProfileEltInqBeginW -#define RpcNsProfileEltInqNext RpcNsProfileEltInqNextW -#define RpcNsBindingExportPnP RpcNsBindingExportPnPW -#define RpcNsBindingUnexportPnP RpcNsBindingUnexportPnPW - -#else - -#define RpcNsBindingLookupBegin RpcNsBindingLookupBeginA -#define RpcNsBindingImportBegin RpcNsBindingImportBeginA -#define RpcNsBindingExport RpcNsBindingExportA -#define RpcNsBindingUnexport RpcNsBindingUnexportA -#define RpcNsGroupDelete RpcNsGroupDeleteA -#define RpcNsGroupMbrAdd RpcNsGroupMbrAddA -#define RpcNsGroupMbrRemove RpcNsGroupMbrRemoveA -#define RpcNsGroupMbrInqBegin RpcNsGroupMbrInqBeginA -#define RpcNsGroupMbrInqNext RpcNsGroupMbrInqNextA -#define RpcNsEntryExpandName RpcNsEntryExpandNameA -#define RpcNsEntryObjectInqBegin RpcNsEntryObjectInqBeginA -#define RpcNsMgmtBindingUnexport RpcNsMgmtBindingUnexportA -#define RpcNsMgmtEntryCreate RpcNsMgmtEntryCreateA -#define RpcNsMgmtEntryDelete RpcNsMgmtEntryDeleteA -#define RpcNsMgmtEntryInqIfIds RpcNsMgmtEntryInqIfIdsA -#define RpcNsProfileDelete RpcNsProfileDeleteA -#define RpcNsProfileEltAdd RpcNsProfileEltAddA -#define RpcNsProfileEltRemove RpcNsProfileEltRemoveA -#define RpcNsProfileEltInqBegin RpcNsProfileEltInqBeginA -#define RpcNsProfileEltInqNext RpcNsProfileEltInqNextA -#define RpcNsBindingExportPnP RpcNsBindingExportPnPA -#define RpcNsBindingUnexportPnP RpcNsBindingUnexportPnPA -#endif /* UNICODE */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#endif /* __RPCNSI_H__ */ diff --git a/src/custom/winsdk/include/um/rpcnsip.h b/src/custom/winsdk/include/um/rpcnsip.h deleted file mode 100644 index 5d819b6..0000000 --- a/src/custom/winsdk/include/um/rpcnsip.h +++ /dev/null @@ -1,102 +0,0 @@ -#include - -/*++ - -Copyright (c) Microsoft Corporation. All rights reserved. - -Module Name: - - rpcnsip.h - -Abstract: - - This file contains the types and function definitions to use the - to implement the autohandle features of the runtime. - ---*/ - -#ifndef __RPCNSIP_H__ -#define __RPCNSIP_H__ - -#if _MSC_VER > 1000 -#pragma once -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -typedef struct -{ - RPC_NS_HANDLE LookupContext; - RPC_BINDING_HANDLE ProposedHandle; - RPC_BINDING_VECTOR * Bindings; - -} RPC_IMPORT_CONTEXT_P, * PRPC_IMPORT_CONTEXT_P; - - -/* Stub Auto Binding routines. */ - -RPCNSAPI -RPC_STATUS -RPC_ENTRY -I_RpcNsGetBuffer( - IN PRPC_MESSAGE Message - ); - -RPCNSAPI -RPC_STATUS -RPC_ENTRY -I_RpcNsSendReceive( - IN PRPC_MESSAGE Message, - OUT RPC_BINDING_HANDLE __RPC_FAR * Handle - ); - -RPCNSAPI -_Analysis_noreturn_ -void -RPC_ENTRY -I_RpcNsRaiseException( - IN PRPC_MESSAGE Message, - IN RPC_STATUS Status - ); - -RPCNSAPI -RPC_STATUS -RPC_ENTRY -I_RpcReBindBuffer( - IN PRPC_MESSAGE Message - ); - -RPCNSAPI -RPC_STATUS -RPC_ENTRY -I_NsServerBindSearch( - void - ); - -RPCNSAPI -RPC_STATUS -RPC_ENTRY -I_NsClientBindSearch( - void - ); - -RPCNSAPI -void -RPC_ENTRY -I_NsClientBindDone( - void - ); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#ifdef __cplusplus -} -#endif - -#endif /* __RPCNSIP_H__ */ diff --git a/src/custom/winsdk/include/um/servprov.h b/src/custom/winsdk/include/um/servprov.h deleted file mode 100644 index aad0146..0000000 --- a/src/custom/winsdk/include/um/servprov.h +++ /dev/null @@ -1,264 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __servprov_h__ -#define __servprov_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IServiceProvider_FWD_DEFINED__ -#define __IServiceProvider_FWD_DEFINED__ -typedef interface IServiceProvider IServiceProvider; - -#endif /* __IServiceProvider_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "objidl.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_servprov_0000_0000 */ -/* [local] */ - -//=--------------------------------------------------------------------------= -// ServProv.h -//=--------------------------------------------------------------------------= -// (C) Copyright Microsoft Corporation. All Rights Reserved. -// -// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF -// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO -// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -// PARTICULAR PURPOSE. -//=--------------------------------------------------------------------------= - -#pragma comment(lib,"uuid.lib") - -//---------------------------------------------------------------------------= -// IServiceProvider Interfaces. - -#include -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - - - -extern RPC_IF_HANDLE __MIDL_itf_servprov_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_servprov_0000_0000_v0_0_s_ifspec; - -#ifndef __IServiceProvider_INTERFACE_DEFINED__ -#define __IServiceProvider_INTERFACE_DEFINED__ - -/* interface IServiceProvider */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IServiceProvider *LPSERVICEPROVIDER; - -#if (_MSC_VER >= 1100) && defined(__cplusplus) && !defined(CINTERFACE) - EXTERN_C const IID IID_IServiceProvider; - extern "C++" - { - MIDL_INTERFACE("6d5140c1-7436-11ce-8034-00aa006009fa") - IServiceProvider : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE QueryService( - /* [in] */ _In_ REFGUID guidService, - /* [in] */ _In_ REFIID riid, - /* [out] */ _Outptr_ void __RPC_FAR *__RPC_FAR *ppvObject) = 0; - - template - HRESULT STDMETHODCALLTYPE QueryService(_In_ REFGUID guidService, _Outptr_ Q** pp) - { - return QueryService(guidService, __uuidof(Q), (void **)pp); - } - }; - } - - /* [call_as] */ HRESULT STDMETHODCALLTYPE IServiceProvider_RemoteQueryService_Proxy( - _In_ IServiceProvider __RPC_FAR * This, - /* [in] */ _In_ REFGUID guidService, - /* [in] */ _In_ REFIID riid, - /* [iid_is][out] */ _Outptr_ IUnknown __RPC_FAR *__RPC_FAR *ppvObject); - - void __RPC_STUB IServiceProvider_RemoteQueryService_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - -#else // VC6 Hack - -EXTERN_C const IID IID_IServiceProvider; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6d5140c1-7436-11ce-8034-00aa006009fa") - IServiceProvider : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE QueryService( - /* [annotation][in] */ - _In_ REFGUID guidService, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppvObject) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IServiceProviderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IServiceProvider * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IServiceProvider * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IServiceProvider * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *QueryService )( - IServiceProvider * This, - /* [annotation][in] */ - _In_ REFGUID guidService, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppvObject); - - END_INTERFACE - } IServiceProviderVtbl; - - interface IServiceProvider - { - CONST_VTBL struct IServiceProviderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IServiceProvider_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IServiceProvider_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IServiceProvider_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IServiceProvider_QueryService(This,guidService,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryService(This,guidService,riid,ppvObject) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IServiceProvider_RemoteQueryService_Proxy( - __RPC__in IServiceProvider * This, - /* [in] */ __RPC__in REFGUID guidService, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObject); - - -void __RPC_STUB IServiceProvider_RemoteQueryService_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IServiceProvider_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_servprov_0000_0001 */ -/* [local] */ - -#endif // VC6 Hack -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - - -extern RPC_IF_HANDLE __MIDL_itf_servprov_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_servprov_0000_0001_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* [local] */ HRESULT STDMETHODCALLTYPE IServiceProvider_QueryService_Proxy( - IServiceProvider * This, - /* [annotation][in] */ - _In_ REFGUID guidService, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _Outptr_ void **ppvObject); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IServiceProvider_QueryService_Stub( - __RPC__in IServiceProvider * This, - /* [in] */ __RPC__in REFGUID guidService, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObject); - - - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/custom/winsdk/include/um/urlmon.h b/src/custom/winsdk/include/um/urlmon.h deleted file mode 100644 index b80670e..0000000 --- a/src/custom/winsdk/include/um/urlmon.h +++ /dev/null @@ -1,10567 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __urlmon_h__ -#define __urlmon_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IPersistMoniker_FWD_DEFINED__ -#define __IPersistMoniker_FWD_DEFINED__ -typedef interface IPersistMoniker IPersistMoniker; - -#endif /* __IPersistMoniker_FWD_DEFINED__ */ - - -#ifndef __IMonikerProp_FWD_DEFINED__ -#define __IMonikerProp_FWD_DEFINED__ -typedef interface IMonikerProp IMonikerProp; - -#endif /* __IMonikerProp_FWD_DEFINED__ */ - - -#ifndef __IBindProtocol_FWD_DEFINED__ -#define __IBindProtocol_FWD_DEFINED__ -typedef interface IBindProtocol IBindProtocol; - -#endif /* __IBindProtocol_FWD_DEFINED__ */ - - -#ifndef __IBinding_FWD_DEFINED__ -#define __IBinding_FWD_DEFINED__ -typedef interface IBinding IBinding; - -#endif /* __IBinding_FWD_DEFINED__ */ - - -#ifndef __IBindStatusCallback_FWD_DEFINED__ -#define __IBindStatusCallback_FWD_DEFINED__ -typedef interface IBindStatusCallback IBindStatusCallback; - -#endif /* __IBindStatusCallback_FWD_DEFINED__ */ - - -#ifndef __IBindStatusCallbackEx_FWD_DEFINED__ -#define __IBindStatusCallbackEx_FWD_DEFINED__ -typedef interface IBindStatusCallbackEx IBindStatusCallbackEx; - -#endif /* __IBindStatusCallbackEx_FWD_DEFINED__ */ - - -#ifndef __IAuthenticate_FWD_DEFINED__ -#define __IAuthenticate_FWD_DEFINED__ -typedef interface IAuthenticate IAuthenticate; - -#endif /* __IAuthenticate_FWD_DEFINED__ */ - - -#ifndef __IAuthenticateEx_FWD_DEFINED__ -#define __IAuthenticateEx_FWD_DEFINED__ -typedef interface IAuthenticateEx IAuthenticateEx; - -#endif /* __IAuthenticateEx_FWD_DEFINED__ */ - - -#ifndef __IHttpNegotiate_FWD_DEFINED__ -#define __IHttpNegotiate_FWD_DEFINED__ -typedef interface IHttpNegotiate IHttpNegotiate; - -#endif /* __IHttpNegotiate_FWD_DEFINED__ */ - - -#ifndef __IHttpNegotiate2_FWD_DEFINED__ -#define __IHttpNegotiate2_FWD_DEFINED__ -typedef interface IHttpNegotiate2 IHttpNegotiate2; - -#endif /* __IHttpNegotiate2_FWD_DEFINED__ */ - - -#ifndef __IHttpNegotiate3_FWD_DEFINED__ -#define __IHttpNegotiate3_FWD_DEFINED__ -typedef interface IHttpNegotiate3 IHttpNegotiate3; - -#endif /* __IHttpNegotiate3_FWD_DEFINED__ */ - - -#ifndef __IWinInetFileStream_FWD_DEFINED__ -#define __IWinInetFileStream_FWD_DEFINED__ -typedef interface IWinInetFileStream IWinInetFileStream; - -#endif /* __IWinInetFileStream_FWD_DEFINED__ */ - - -#ifndef __IWindowForBindingUI_FWD_DEFINED__ -#define __IWindowForBindingUI_FWD_DEFINED__ -typedef interface IWindowForBindingUI IWindowForBindingUI; - -#endif /* __IWindowForBindingUI_FWD_DEFINED__ */ - - -#ifndef __ICodeInstall_FWD_DEFINED__ -#define __ICodeInstall_FWD_DEFINED__ -typedef interface ICodeInstall ICodeInstall; - -#endif /* __ICodeInstall_FWD_DEFINED__ */ - - -#ifndef __IUri_FWD_DEFINED__ -#define __IUri_FWD_DEFINED__ -typedef interface IUri IUri; - -#endif /* __IUri_FWD_DEFINED__ */ - - -#ifndef __IUriContainer_FWD_DEFINED__ -#define __IUriContainer_FWD_DEFINED__ -typedef interface IUriContainer IUriContainer; - -#endif /* __IUriContainer_FWD_DEFINED__ */ - - -#ifndef __IUriBuilder_FWD_DEFINED__ -#define __IUriBuilder_FWD_DEFINED__ -typedef interface IUriBuilder IUriBuilder; - -#endif /* __IUriBuilder_FWD_DEFINED__ */ - - -#ifndef __IUriBuilderFactory_FWD_DEFINED__ -#define __IUriBuilderFactory_FWD_DEFINED__ -typedef interface IUriBuilderFactory IUriBuilderFactory; - -#endif /* __IUriBuilderFactory_FWD_DEFINED__ */ - - -#ifndef __IWinInetInfo_FWD_DEFINED__ -#define __IWinInetInfo_FWD_DEFINED__ -typedef interface IWinInetInfo IWinInetInfo; - -#endif /* __IWinInetInfo_FWD_DEFINED__ */ - - -#ifndef __IHttpSecurity_FWD_DEFINED__ -#define __IHttpSecurity_FWD_DEFINED__ -typedef interface IHttpSecurity IHttpSecurity; - -#endif /* __IHttpSecurity_FWD_DEFINED__ */ - - -#ifndef __IWinInetHttpInfo_FWD_DEFINED__ -#define __IWinInetHttpInfo_FWD_DEFINED__ -typedef interface IWinInetHttpInfo IWinInetHttpInfo; - -#endif /* __IWinInetHttpInfo_FWD_DEFINED__ */ - - -#ifndef __IWinInetHttpTimeouts_FWD_DEFINED__ -#define __IWinInetHttpTimeouts_FWD_DEFINED__ -typedef interface IWinInetHttpTimeouts IWinInetHttpTimeouts; - -#endif /* __IWinInetHttpTimeouts_FWD_DEFINED__ */ - - -#ifndef __IWinInetCacheHints_FWD_DEFINED__ -#define __IWinInetCacheHints_FWD_DEFINED__ -typedef interface IWinInetCacheHints IWinInetCacheHints; - -#endif /* __IWinInetCacheHints_FWD_DEFINED__ */ - - -#ifndef __IWinInetCacheHints2_FWD_DEFINED__ -#define __IWinInetCacheHints2_FWD_DEFINED__ -typedef interface IWinInetCacheHints2 IWinInetCacheHints2; - -#endif /* __IWinInetCacheHints2_FWD_DEFINED__ */ - - -#ifndef __IBindHost_FWD_DEFINED__ -#define __IBindHost_FWD_DEFINED__ -typedef interface IBindHost IBindHost; - -#endif /* __IBindHost_FWD_DEFINED__ */ - - -#ifndef __IInternet_FWD_DEFINED__ -#define __IInternet_FWD_DEFINED__ -typedef interface IInternet IInternet; - -#endif /* __IInternet_FWD_DEFINED__ */ - - -#ifndef __IInternetBindInfo_FWD_DEFINED__ -#define __IInternetBindInfo_FWD_DEFINED__ -typedef interface IInternetBindInfo IInternetBindInfo; - -#endif /* __IInternetBindInfo_FWD_DEFINED__ */ - - -#ifndef __IInternetBindInfoEx_FWD_DEFINED__ -#define __IInternetBindInfoEx_FWD_DEFINED__ -typedef interface IInternetBindInfoEx IInternetBindInfoEx; - -#endif /* __IInternetBindInfoEx_FWD_DEFINED__ */ - - -#ifndef __IInternetProtocolRoot_FWD_DEFINED__ -#define __IInternetProtocolRoot_FWD_DEFINED__ -typedef interface IInternetProtocolRoot IInternetProtocolRoot; - -#endif /* __IInternetProtocolRoot_FWD_DEFINED__ */ - - -#ifndef __IInternetProtocol_FWD_DEFINED__ -#define __IInternetProtocol_FWD_DEFINED__ -typedef interface IInternetProtocol IInternetProtocol; - -#endif /* __IInternetProtocol_FWD_DEFINED__ */ - - -#ifndef __IInternetProtocolEx_FWD_DEFINED__ -#define __IInternetProtocolEx_FWD_DEFINED__ -typedef interface IInternetProtocolEx IInternetProtocolEx; - -#endif /* __IInternetProtocolEx_FWD_DEFINED__ */ - - -#ifndef __IInternetProtocolSink_FWD_DEFINED__ -#define __IInternetProtocolSink_FWD_DEFINED__ -typedef interface IInternetProtocolSink IInternetProtocolSink; - -#endif /* __IInternetProtocolSink_FWD_DEFINED__ */ - - -#ifndef __IInternetProtocolSinkStackable_FWD_DEFINED__ -#define __IInternetProtocolSinkStackable_FWD_DEFINED__ -typedef interface IInternetProtocolSinkStackable IInternetProtocolSinkStackable; - -#endif /* __IInternetProtocolSinkStackable_FWD_DEFINED__ */ - - -#ifndef __IInternetSession_FWD_DEFINED__ -#define __IInternetSession_FWD_DEFINED__ -typedef interface IInternetSession IInternetSession; - -#endif /* __IInternetSession_FWD_DEFINED__ */ - - -#ifndef __IInternetThreadSwitch_FWD_DEFINED__ -#define __IInternetThreadSwitch_FWD_DEFINED__ -typedef interface IInternetThreadSwitch IInternetThreadSwitch; - -#endif /* __IInternetThreadSwitch_FWD_DEFINED__ */ - - -#ifndef __IInternetPriority_FWD_DEFINED__ -#define __IInternetPriority_FWD_DEFINED__ -typedef interface IInternetPriority IInternetPriority; - -#endif /* __IInternetPriority_FWD_DEFINED__ */ - - -#ifndef __IInternetProtocolInfo_FWD_DEFINED__ -#define __IInternetProtocolInfo_FWD_DEFINED__ -typedef interface IInternetProtocolInfo IInternetProtocolInfo; - -#endif /* __IInternetProtocolInfo_FWD_DEFINED__ */ - - -#ifndef __IInternetSecurityMgrSite_FWD_DEFINED__ -#define __IInternetSecurityMgrSite_FWD_DEFINED__ -typedef interface IInternetSecurityMgrSite IInternetSecurityMgrSite; - -#endif /* __IInternetSecurityMgrSite_FWD_DEFINED__ */ - - -#ifndef __IInternetSecurityManager_FWD_DEFINED__ -#define __IInternetSecurityManager_FWD_DEFINED__ -typedef interface IInternetSecurityManager IInternetSecurityManager; - -#endif /* __IInternetSecurityManager_FWD_DEFINED__ */ - - -#ifndef __IInternetSecurityManagerEx_FWD_DEFINED__ -#define __IInternetSecurityManagerEx_FWD_DEFINED__ -typedef interface IInternetSecurityManagerEx IInternetSecurityManagerEx; - -#endif /* __IInternetSecurityManagerEx_FWD_DEFINED__ */ - - -#ifndef __IInternetSecurityManagerEx2_FWD_DEFINED__ -#define __IInternetSecurityManagerEx2_FWD_DEFINED__ -typedef interface IInternetSecurityManagerEx2 IInternetSecurityManagerEx2; - -#endif /* __IInternetSecurityManagerEx2_FWD_DEFINED__ */ - - -#ifndef __IZoneIdentifier_FWD_DEFINED__ -#define __IZoneIdentifier_FWD_DEFINED__ -typedef interface IZoneIdentifier IZoneIdentifier; - -#endif /* __IZoneIdentifier_FWD_DEFINED__ */ - - -#ifndef __IZoneIdentifier2_FWD_DEFINED__ -#define __IZoneIdentifier2_FWD_DEFINED__ -typedef interface IZoneIdentifier2 IZoneIdentifier2; - -#endif /* __IZoneIdentifier2_FWD_DEFINED__ */ - - -#ifndef __IInternetHostSecurityManager_FWD_DEFINED__ -#define __IInternetHostSecurityManager_FWD_DEFINED__ -typedef interface IInternetHostSecurityManager IInternetHostSecurityManager; - -#endif /* __IInternetHostSecurityManager_FWD_DEFINED__ */ - - -#ifndef __IInternetZoneManager_FWD_DEFINED__ -#define __IInternetZoneManager_FWD_DEFINED__ -typedef interface IInternetZoneManager IInternetZoneManager; - -#endif /* __IInternetZoneManager_FWD_DEFINED__ */ - - -#ifndef __IInternetZoneManagerEx_FWD_DEFINED__ -#define __IInternetZoneManagerEx_FWD_DEFINED__ -typedef interface IInternetZoneManagerEx IInternetZoneManagerEx; - -#endif /* __IInternetZoneManagerEx_FWD_DEFINED__ */ - - -#ifndef __IInternetZoneManagerEx2_FWD_DEFINED__ -#define __IInternetZoneManagerEx2_FWD_DEFINED__ -typedef interface IInternetZoneManagerEx2 IInternetZoneManagerEx2; - -#endif /* __IInternetZoneManagerEx2_FWD_DEFINED__ */ - - -#ifndef __ISoftDistExt_FWD_DEFINED__ -#define __ISoftDistExt_FWD_DEFINED__ -typedef interface ISoftDistExt ISoftDistExt; - -#endif /* __ISoftDistExt_FWD_DEFINED__ */ - - -#ifndef __ICatalogFileInfo_FWD_DEFINED__ -#define __ICatalogFileInfo_FWD_DEFINED__ -typedef interface ICatalogFileInfo ICatalogFileInfo; - -#endif /* __ICatalogFileInfo_FWD_DEFINED__ */ - - -#ifndef __IDataFilter_FWD_DEFINED__ -#define __IDataFilter_FWD_DEFINED__ -typedef interface IDataFilter IDataFilter; - -#endif /* __IDataFilter_FWD_DEFINED__ */ - - -#ifndef __IEncodingFilterFactory_FWD_DEFINED__ -#define __IEncodingFilterFactory_FWD_DEFINED__ -typedef interface IEncodingFilterFactory IEncodingFilterFactory; - -#endif /* __IEncodingFilterFactory_FWD_DEFINED__ */ - - -#ifndef __IWrappedProtocol_FWD_DEFINED__ -#define __IWrappedProtocol_FWD_DEFINED__ -typedef interface IWrappedProtocol IWrappedProtocol; - -#endif /* __IWrappedProtocol_FWD_DEFINED__ */ - - -#ifndef __IGetBindHandle_FWD_DEFINED__ -#define __IGetBindHandle_FWD_DEFINED__ -typedef interface IGetBindHandle IGetBindHandle; - -#endif /* __IGetBindHandle_FWD_DEFINED__ */ - - -#ifndef __IBindCallbackRedirect_FWD_DEFINED__ -#define __IBindCallbackRedirect_FWD_DEFINED__ -typedef interface IBindCallbackRedirect IBindCallbackRedirect; - -#endif /* __IBindCallbackRedirect_FWD_DEFINED__ */ - - -#ifndef __IBindHttpSecurity_FWD_DEFINED__ -#define __IBindHttpSecurity_FWD_DEFINED__ -typedef interface IBindHttpSecurity IBindHttpSecurity; - -#endif /* __IBindHttpSecurity_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "objidl.h" -#include "oleidl.h" -#include "servprov.h" -#include "msxml.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_urlmon_0000_0000 */ -/* [local] */ - -//=--------------------------------------------------------------------------= -// UrlMon.h -//=--------------------------------------------------------------------------= -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF -// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO -// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -// PARTICULAR PURPOSE. -//=--------------------------------------------------------------------------= - -#pragma comment(lib,"uuid.lib") - -//---------------------------------------------------------------------------= -// URL Moniker Interfaces. - -#include -#if _MSC_VER >= 1200 -#pragma warning(push) -#ifndef _MSC_EXTENSIONS -#pragma warning(disable:4309) /* truncation of constant value */ -#endif -#pragma warning(disable:4820) /* padding added after data member */ -#endif -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - - - - - - - - - - - - - - -// Side-by-Side clsid -EXTERN_C const IID CLSID_SBS_StdURLMoniker; -EXTERN_C const IID CLSID_SBS_HttpProtocol; -EXTERN_C const IID CLSID_SBS_FtpProtocol; -EXTERN_C const IID CLSID_SBS_GopherProtocol; -EXTERN_C const IID CLSID_SBS_HttpSProtocol; -EXTERN_C const IID CLSID_SBS_FileProtocol; -EXTERN_C const IID CLSID_SBS_MkProtocol; -EXTERN_C const IID CLSID_SBS_UrlMkBindCtx; -EXTERN_C const IID CLSID_SBS_SoftDistExt; -EXTERN_C const IID CLSID_SBS_CdlProtocol; -EXTERN_C const IID CLSID_SBS_ClassInstallFilter; -EXTERN_C const IID CLSID_SBS_InternetSecurityManager; -EXTERN_C const IID CLSID_SBS_InternetZoneManager; -// END Side-by-Side clsid -// These are for backwards compatibility with previous URLMON versions -#define BINDF_DONTUSECACHE BINDF_GETNEWESTVERSION -#define BINDF_DONTPUTINCACHE BINDF_NOWRITECACHE -#define BINDF_NOCOPYDATA BINDF_PULLDATA -#define INVALID_P_ROOT_SECURITY_ID ((BYTE*)-1) -#define PI_DOCFILECLSIDLOOKUP PI_CLSIDLOOKUP -EXTERN_C const IID IID_IAsyncMoniker; -EXTERN_C const IID CLSID_StdURLMoniker; -EXTERN_C const IID CLSID_HttpProtocol; -EXTERN_C const IID CLSID_FtpProtocol; -EXTERN_C const IID CLSID_GopherProtocol; -EXTERN_C const IID CLSID_HttpSProtocol; -EXTERN_C const IID CLSID_FileProtocol; -EXTERN_C const IID CLSID_ResProtocol; -EXTERN_C const IID CLSID_AboutProtocol; -EXTERN_C const IID CLSID_JSProtocol; -EXTERN_C const IID CLSID_MailtoProtocol; -EXTERN_C const IID CLSID_IE4_PROTOCOLS; -EXTERN_C const IID CLSID_MkProtocol; -EXTERN_C const IID CLSID_StdURLProtocol; -EXTERN_C const IID CLSID_TBAuthProtocol; -EXTERN_C const IID CLSID_UrlMkBindCtx; -EXTERN_C const IID CLSID_CdlProtocol; -EXTERN_C const IID CLSID_ClassInstallFilter; -EXTERN_C const IID IID_IAsyncBindCtx; - -#define SZ_URLCONTEXT OLESTR("URL Context") -#define SZ_ASYNC_CALLEE OLESTR("AsyncCallee") -#define MKSYS_URLMONIKER 6 -#define URL_MK_LEGACY 0 -#define URL_MK_UNIFORM 1 -#define URL_MK_NO_CANONICALIZE 2 - -STDAPI CreateURLMoniker(_In_opt_ LPMONIKER pMkCtx, _In_ LPCWSTR szURL, _Outptr_ LPMONIKER FAR * ppmk); -STDAPI CreateURLMonikerEx(_In_opt_ LPMONIKER pMkCtx, _In_ LPCWSTR szURL, _Outptr_ LPMONIKER FAR * ppmk, DWORD dwFlags); -STDAPI GetClassURL(_In_ LPCWSTR szURL, _Out_ CLSID *pClsID); -STDAPI CreateAsyncBindCtx(DWORD reserved, _In_ IBindStatusCallback *pBSCb, - _In_opt_ IEnumFORMATETC *pEFetc, _Outptr_ IBindCtx **ppBC); -#if (_WIN32_IE >= _WIN32_IE_IE70) -STDAPI CreateURLMonikerEx2(_In_opt_ LPMONIKER pMkCtx, _In_ IUri* pUri, _Outptr_ LPMONIKER FAR * ppmk, DWORD dwFlags); -#endif -STDAPI CreateAsyncBindCtxEx(_In_ IBindCtx *pbc, DWORD dwOptions, _In_ IBindStatusCallback *pBSCb, _In_opt_ IEnumFORMATETC *pEnum, - _Outptr_ IBindCtx **ppBC, DWORD reserved); -STDAPI MkParseDisplayNameEx(_In_ IBindCtx *pbc, _In_ LPCWSTR szDisplayName, _Out_ _Out_range_(<=, _String_length_(szDisplayName)) ULONG *pchEaten, - _Outptr_ LPMONIKER *ppmk); -STDAPI RegisterBindStatusCallback(_In_ LPBC pBC, _In_ IBindStatusCallback *pBSCb, - _Outptr_ IBindStatusCallback** ppBSCBPrev, DWORD dwReserved); -STDAPI RevokeBindStatusCallback(_In_ LPBC pBC, _In_ IBindStatusCallback *pBSCb); -STDAPI GetClassFileOrMime(_In_opt_ LPBC pBC, _In_opt_ LPCWSTR szFilename, _In_reads_bytes_opt_(cbSize) LPVOID pBuffer, DWORD cbSize, _In_opt_ LPCWSTR szMime, DWORD dwReserved, _Out_ CLSID *pclsid); -STDAPI IsValidURL(_In_opt_ LPBC pBC, _In_ LPCWSTR szURL, DWORD dwReserved); -STDAPI CoGetClassObjectFromURL( _In_ REFCLSID rCLASSID, - _In_ LPCWSTR szCODE, DWORD dwFileVersionMS, - DWORD dwFileVersionLS, _In_ LPCWSTR szTYPE, - _In_ LPBINDCTX pBindCtx, DWORD dwClsContext, - _Reserved_ LPVOID pvReserved, REFIID riid, _Outptr_ LPVOID * ppv); -STDAPI IEInstallScope(_Out_ LPDWORD pdwScope); -STDAPI FaultInIEFeature( HWND hWnd, - _In_ uCLSSPEC *pClassSpec, - _Inout_opt_ QUERYCONTEXT *pQuery, DWORD dwFlags); -STDAPI GetComponentIDFromCLSSPEC(_In_ uCLSSPEC *pClassspec, - _Outptr_ LPSTR * ppszComponentID); -// flags for FaultInIEFeature -#define FIEF_FLAG_FORCE_JITUI 0x1 // force JIT ui even if - // previoulsy rejected by - // user in this session or - // marked as Never Ask Again -#define FIEF_FLAG_PEEK 0x2 // just peek, don't faultin -#define FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK 0x4 // force JIT without checking local version -#define FIEF_FLAG_RESERVED_0 0x8 // reserved - -//helper apis -STDAPI IsAsyncMoniker(_In_ IMoniker* pmk); -STDAPI CreateURLBinding(LPCWSTR lpszUrl, _In_ IBindCtx *pbc, _Inout_ IBinding **ppBdg); - -STDAPI RegisterMediaTypes(_In_ _In_range_(>, 0) UINT ctypes, _In_reads_(ctypes) const LPCSTR* rgszTypes, _Out_writes_(ctypes) CLIPFORMAT* rgcfTypes); -STDAPI FindMediaType(_In_ LPCSTR rgszTypes, _Out_ CLIPFORMAT* rgcfTypes); -STDAPI CreateFormatEnumerator( _In_ _In_range_(>, 0) UINT cfmtetc, _In_reads_(cfmtetc) FORMATETC* rgfmtetc, _Outptr_ IEnumFORMATETC** ppenumfmtetc); -STDAPI RegisterFormatEnumerator(_In_ LPBC pBC, _In_ IEnumFORMATETC *pEFetc, DWORD reserved); -STDAPI RevokeFormatEnumerator(_In_ LPBC pBC, _In_ IEnumFORMATETC *pEFetc); -STDAPI RegisterMediaTypeClass(_In_ LPBC pBC, _In_ _In_range_(>, 0) UINT ctypes, _In_reads_(ctypes) const LPCSTR* rgszTypes, _In_reads_(ctypes) CLSID *rgclsID, DWORD reserved); -STDAPI FindMediaTypeClass(_In_ LPBC pBC, _In_ LPCSTR szType, _Out_ CLSID *pclsID, DWORD reserved); -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) -STDAPI UrlMkSetSessionOption(DWORD dwOption, _In_reads_bytes_opt_(dwBufferLength) LPVOID pBuffer, DWORD dwBufferLength, _Reserved_ DWORD dwReserved); -STDAPI UrlMkGetSessionOption(DWORD dwOption, _Out_writes_bytes_to_opt_(dwBufferLength,*pdwBufferLengthOut) LPVOID pBuffer, DWORD dwBufferLength, _Out_ DWORD *pdwBufferLengthOut, _Reserved_ DWORD dwReserved); -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -STDAPI FindMimeFromData( - _In_opt_ LPBC pBC, // bind context - can be NULL - _In_opt_ LPCWSTR pwzUrl, // url - can be null - _In_reads_bytes_opt_(cbSize) LPVOID pBuffer, // buffer with data to sniff - can be null (pwzUrl must be valid) - DWORD cbSize, // size of buffer - _In_opt_ LPCWSTR pwzMimeProposed, // proposed mime if - can be null - DWORD dwMimeFlags, // will be defined - _Outptr_ LPWSTR *ppwzMimeOut, // the suggested mime - _Reserved_ DWORD dwReserved); // must be 0 -#define FMFD_DEFAULT 0x00000000 -#define FMFD_URLASFILENAME 0x00000001 -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -#define FMFD_ENABLEMIMESNIFFING 0x00000002 -#define FMFD_IGNOREMIMETEXTPLAIN 0x00000004 -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) -#define FMFD_SERVERMIME 0x00000008 -#define FMFD_RESPECTTEXTPLAIN 0x00000010 -#define FMFD_RETURNUPDATEDIMGMIMES 0x00000020 -#define FMFD_RESERVED_1 0x00000040 -#define UAS_EXACTLEGACY 0x00001000 -STDAPI ObtainUserAgentString( - DWORD dwOption, - _Out_writes_to_(*cbSize, *cbSize) LPSTR pszUAOut, - _Inout_ DWORD *cbSize); -STDAPI CompareSecurityIds(_In_reads_(dwLen1) BYTE* pbSecurityId1, _In_ DWORD dwLen1, _In_reads_(dwLen2) BYTE* pbSecurityId2, _In_ DWORD dwLen2, _In_ DWORD dwReserved); -STDAPI CompatFlagsFromClsid(_In_ CLSID *pclsid, _Out_ LPDWORD pdwCompatFlags, _Out_ LPDWORD pdwMiscStatusFlags); - -#if (NTDDI_VERSION > NTDDI_WINBLUE || (NTDDI_VERSION == NTDDI_WINBLUE && defined(WINBLUE_KBSPRING14))) -// Enhanced Protected Mode (EPM) Convenience Functions - -typedef enum IEObjectType -{ - IE_EPM_OBJECT_EVENT, - IE_EPM_OBJECT_MUTEX, - IE_EPM_OBJECT_SEMAPHORE, - IE_EPM_OBJECT_SHARED_MEMORY, - IE_EPM_OBJECT_WAITABLE_TIMER, - IE_EPM_OBJECT_FILE, - IE_EPM_OBJECT_NAMED_PIPE, - IE_EPM_OBJECT_REGISTRY, -} IEObjectType; - -STDAPI SetAccessForIEAppContainer( - _In_ HANDLE hObject, - _In_ IEObjectType ieObjectType, - _In_ DWORD dwAccessMask - ); -#endif - -// URLMON-specific defines for UrlMkSetSessionOption() above -#define URLMON_OPTION_USERAGENT 0x10000001 -#define URLMON_OPTION_USERAGENT_REFRESH 0x10000002 -#define URLMON_OPTION_URL_ENCODING 0x10000004 -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -#define URLMON_OPTION_USE_BINDSTRINGCREDS 0x10000008 -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) -#if (_WIN32_IE >= _WIN32_IE_IE70) -#define URLMON_OPTION_USE_BROWSERAPPSDOCUMENTS 0x10000010 -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -#define CF_NULL 0 -#define CFSTR_MIME_NULL NULL -#define CFSTR_MIME_TEXT (TEXT("text/plain")) -#define CFSTR_MIME_RICHTEXT (TEXT("text/richtext")) -#define CFSTR_MIME_MANIFEST (TEXT("text/cache-manifest")) -#define CFSTR_MIME_WEBVTT (TEXT("text/vtt")) -#define CFSTR_MIME_X_BITMAP (TEXT("image/x-xbitmap")) -#define CFSTR_MIME_POSTSCRIPT (TEXT("application/postscript")) -#define CFSTR_MIME_AIFF (TEXT("audio/aiff")) -#define CFSTR_MIME_BASICAUDIO (TEXT("audio/basic")) -#define CFSTR_MIME_WAV (TEXT("audio/wav")) -#define CFSTR_MIME_X_WAV (TEXT("audio/x-wav")) -#define CFSTR_MIME_GIF (TEXT("image/gif")) -#define CFSTR_MIME_PJPEG (TEXT("image/pjpeg")) -#define CFSTR_MIME_JPEG (TEXT("image/jpeg")) -#define CFSTR_MIME_TIFF (TEXT("image/tiff")) -#define CFSTR_MIME_JPEG_XR (TEXT("image/vnd.ms-photo")) -#define CFSTR_MIME_PNG (TEXT("image/png")) -#define CFSTR_MIME_DDS (TEXT("image/vnd.ms-dds")) -#define CFSTR_MIME_X_PNG (TEXT("image/x-png")) -#define CFSTR_MIME_X_ICON (TEXT("image/x-icon")) -#define CFSTR_MIME_SVG_XML (TEXT("image/svg+xml")) -#define CFSTR_MIME_BMP (TEXT("image/bmp")) -#define CFSTR_MIME_X_EMF (TEXT("image/x-emf")) -#define CFSTR_MIME_X_WMF (TEXT("image/x-wmf")) -#define CFSTR_MIME_AVI (TEXT("video/avi")) -#define CFSTR_MIME_MPEG (TEXT("video/mpeg")) -#define CFSTR_MIME_FRACTALS (TEXT("application/fractals")) -#define CFSTR_MIME_RAWDATA (TEXT("application/octet-stream")) -#define CFSTR_MIME_RAWDATASTRM (TEXT("application/octet-stream")) -#define CFSTR_MIME_PDF (TEXT("application/pdf")) -#define CFSTR_MIME_HTA (TEXT("application/hta")) -#define CFSTR_MIME_APP_XML (TEXT("application/xml")) -#define CFSTR_MIME_XHTML (TEXT("application/xhtml+xml")) -#define CFSTR_MIME_X_AIFF (TEXT("audio/x-aiff")) -#define CFSTR_MIME_X_REALAUDIO (TEXT("audio/x-pn-realaudio")) -#define CFSTR_MIME_XBM (TEXT("image/xbm")) -#define CFSTR_MIME_QUICKTIME (TEXT("video/quicktime")) -#define CFSTR_MIME_X_MSVIDEO (TEXT("video/x-msvideo")) -#define CFSTR_MIME_X_SGI_MOVIE (TEXT("video/x-sgi-movie")) -#define CFSTR_MIME_X_MIXED_REPLACE (TEXT("multipart/x-mixed-replace")) -#define CFSTR_MIME_HTML (TEXT("text/html")) -#define CFSTR_MIME_XML (TEXT("text/xml")) -#define CFSTR_MIME_TTML (TEXT("application/ttml+xml")) -#define CFSTR_MIME_TTAF (TEXT("application/ttaf+xml")) -#define CFSTR_MIME_X_JAVASCRIPT (TEXT("application/x-javascript")) -#define CFSTR_MIME_TEXT_JSON (TEXT("text/json")) -#define CFSTR_MIME_APPLICATION_JAVASCRIPT (TEXT("application/javascript")) - -// MessageId: MK_S_ASYNCHRONOUS -// MessageText: Operation is successful, but will complete asynchronously. -// -#define MK_S_ASYNCHRONOUS _HRESULT_TYPEDEF_(0x000401E8L) -#ifndef S_ASYNCHRONOUS -#define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS -#endif - -#ifndef E_PENDING -#define E_PENDING _HRESULT_TYPEDEF_(0x8000000AL) -#endif - -// -// -// WinINet and protocol specific errors are mapped to one of the following -// error which are returned in IBSC::OnStopBinding -// -// -// Note: FACILITY C is split into ranges of 1k -// C0000 - C03FF INET_E_ (URLMON's original hresult) -// C0400 - C07FF INET_E_CLIENT_xxx -// C0800 - C0BFF INET_E_SERVER_xxx -// C0C00 - C0FFF INET_E_???? -// C1000 - C13FF INET_E_AGENT_xxx (info delivery agents) -#define INET_E_INVALID_URL _HRESULT_TYPEDEF_(0x800C0002L) -#define INET_E_NO_SESSION _HRESULT_TYPEDEF_(0x800C0003L) -#define INET_E_CANNOT_CONNECT _HRESULT_TYPEDEF_(0x800C0004L) -#define INET_E_RESOURCE_NOT_FOUND _HRESULT_TYPEDEF_(0x800C0005L) -#define INET_E_OBJECT_NOT_FOUND _HRESULT_TYPEDEF_(0x800C0006L) -#define INET_E_DATA_NOT_AVAILABLE _HRESULT_TYPEDEF_(0x800C0007L) -#define INET_E_DOWNLOAD_FAILURE _HRESULT_TYPEDEF_(0x800C0008L) -#define INET_E_AUTHENTICATION_REQUIRED _HRESULT_TYPEDEF_(0x800C0009L) -#define INET_E_NO_VALID_MEDIA _HRESULT_TYPEDEF_(0x800C000AL) -#define INET_E_CONNECTION_TIMEOUT _HRESULT_TYPEDEF_(0x800C000BL) -#define INET_E_INVALID_REQUEST _HRESULT_TYPEDEF_(0x800C000CL) -#define INET_E_UNKNOWN_PROTOCOL _HRESULT_TYPEDEF_(0x800C000DL) -#define INET_E_SECURITY_PROBLEM _HRESULT_TYPEDEF_(0x800C000EL) -#define INET_E_CANNOT_LOAD_DATA _HRESULT_TYPEDEF_(0x800C000FL) -#define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(0x800C0010L) -#define INET_E_INVALID_CERTIFICATE _HRESULT_TYPEDEF_(0x800C0019L) -#define INET_E_REDIRECT_FAILED _HRESULT_TYPEDEF_(0x800C0014L) -#define INET_E_REDIRECT_TO_DIR _HRESULT_TYPEDEF_(0x800C0015L) -#define INET_E_CANNOT_LOCK_REQUEST _HRESULT_TYPEDEF_(0x800C0016L) -#define INET_E_USE_EXTEND_BINDING _HRESULT_TYPEDEF_(0x800C0017L) -#define INET_E_TERMINATED_BIND _HRESULT_TYPEDEF_(0x800C0018L) -#define INET_E_RESERVED_1 _HRESULT_TYPEDEF_(0x800C001AL) -#define INET_E_BLOCKED_REDIRECT_XSECURITYID _HRESULT_TYPEDEF_(0x800C001BL) -#define INET_E_DOMINJECTIONVALIDATION _HRESULT_TYPEDEF_(0x800C001CL) -#define INET_E_VTAB_SWITCH_FORCE_ENGINE _HRESULT_TYPEDEF_(0x800C001DL) -#define INET_E_HSTS_CERTIFICATE_ERROR _HRESULT_TYPEDEF_(0x800C001EL) -#define INET_E_RESERVED_2 _HRESULT_TYPEDEF_(0x800C001FL) -#define INET_E_RESERVED_3 _HRESULT_TYPEDEF_(0x800C0020L) -#define INET_E_RESERVED_4 _HRESULT_TYPEDEF_(0x800C0021L) -#define INET_E_ERROR_FIRST _HRESULT_TYPEDEF_(0x800C0002L) -#define INET_E_CODE_DOWNLOAD_DECLINED _HRESULT_TYPEDEF_(0x800C0100L) -#define INET_E_RESULT_DISPATCHED _HRESULT_TYPEDEF_(0x800C0200L) -#define INET_E_CANNOT_REPLACE_SFP_FILE _HRESULT_TYPEDEF_(0x800C0300L) -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -#define INET_E_CODE_INSTALL_SUPPRESSED _HRESULT_TYPEDEF_(0x800C0400L) -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) -#define INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY _HRESULT_TYPEDEF_(0x800C0500L) -#define INET_E_DOWNLOAD_BLOCKED_BY_INPRIVATE _HRESULT_TYPEDEF_(0x800C0501L) -#define INET_E_CODE_INSTALL_BLOCKED_IMMERSIVE _HRESULT_TYPEDEF_(0x800C0502L) -#define INET_E_FORBIDFRAMING _HRESULT_TYPEDEF_(0x800C0503L) -#define INET_E_CODE_INSTALL_BLOCKED_ARM _HRESULT_TYPEDEF_(0x800C0504L) -#define INET_E_BLOCKED_PLUGGABLE_PROTOCOL _HRESULT_TYPEDEF_(0x800C0505L) -#define INET_E_BLOCKED_ENHANCEDPROTECTEDMODE _HRESULT_TYPEDEF_(0x800C0506L) -#define INET_E_CODE_INSTALL_BLOCKED_BITNESS _HRESULT_TYPEDEF_(0x800C0507L) -#define INET_E_DOWNLOAD_BLOCKED_BY_CSP _HRESULT_TYPEDEF_(0x800C0508L) -#define INET_E_ERROR_LAST INET_E_DOWNLOAD_BLOCKED_BY_CSP -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#ifndef _LPPERSISTMONIKER_DEFINED -#define _LPPERSISTMONIKER_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0000_v0_0_s_ifspec; - -#ifndef __IPersistMoniker_INTERFACE_DEFINED__ -#define __IPersistMoniker_INTERFACE_DEFINED__ - -/* interface IPersistMoniker */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IPersistMoniker *LPPERSISTMONIKER; - - -EXTERN_C const IID IID_IPersistMoniker; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9c9-baf9-11ce-8c82-00aa004ba90b") - IPersistMoniker : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetClassID( - /* [out] */ __RPC__out CLSID *pClassID) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsDirty( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Load( - /* [in] */ BOOL fFullyAvailable, - /* [in] */ __RPC__in_opt IMoniker *pimkName, - /* [in] */ __RPC__in_opt LPBC pibc, - /* [in] */ DWORD grfMode) = 0; - - virtual HRESULT STDMETHODCALLTYPE Save( - /* [in] */ __RPC__in_opt IMoniker *pimkName, - /* [in] */ __RPC__in_opt LPBC pbc, - /* [in] */ BOOL fRemember) = 0; - - virtual HRESULT STDMETHODCALLTYPE SaveCompleted( - /* [in] */ __RPC__in_opt IMoniker *pimkName, - /* [in] */ __RPC__in_opt LPBC pibc) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurMoniker( - /* [out] */ __RPC__deref_out_opt IMoniker **ppimkName) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IPersistMonikerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IPersistMoniker * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IPersistMoniker * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IPersistMoniker * This); - - HRESULT ( STDMETHODCALLTYPE *GetClassID )( - __RPC__in IPersistMoniker * This, - /* [out] */ __RPC__out CLSID *pClassID); - - HRESULT ( STDMETHODCALLTYPE *IsDirty )( - __RPC__in IPersistMoniker * This); - - HRESULT ( STDMETHODCALLTYPE *Load )( - __RPC__in IPersistMoniker * This, - /* [in] */ BOOL fFullyAvailable, - /* [in] */ __RPC__in_opt IMoniker *pimkName, - /* [in] */ __RPC__in_opt LPBC pibc, - /* [in] */ DWORD grfMode); - - HRESULT ( STDMETHODCALLTYPE *Save )( - __RPC__in IPersistMoniker * This, - /* [in] */ __RPC__in_opt IMoniker *pimkName, - /* [in] */ __RPC__in_opt LPBC pbc, - /* [in] */ BOOL fRemember); - - HRESULT ( STDMETHODCALLTYPE *SaveCompleted )( - __RPC__in IPersistMoniker * This, - /* [in] */ __RPC__in_opt IMoniker *pimkName, - /* [in] */ __RPC__in_opt LPBC pibc); - - HRESULT ( STDMETHODCALLTYPE *GetCurMoniker )( - __RPC__in IPersistMoniker * This, - /* [out] */ __RPC__deref_out_opt IMoniker **ppimkName); - - END_INTERFACE - } IPersistMonikerVtbl; - - interface IPersistMoniker - { - CONST_VTBL struct IPersistMonikerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IPersistMoniker_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IPersistMoniker_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IPersistMoniker_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IPersistMoniker_GetClassID(This,pClassID) \ - ( (This)->lpVtbl -> GetClassID(This,pClassID) ) - -#define IPersistMoniker_IsDirty(This) \ - ( (This)->lpVtbl -> IsDirty(This) ) - -#define IPersistMoniker_Load(This,fFullyAvailable,pimkName,pibc,grfMode) \ - ( (This)->lpVtbl -> Load(This,fFullyAvailable,pimkName,pibc,grfMode) ) - -#define IPersistMoniker_Save(This,pimkName,pbc,fRemember) \ - ( (This)->lpVtbl -> Save(This,pimkName,pbc,fRemember) ) - -#define IPersistMoniker_SaveCompleted(This,pimkName,pibc) \ - ( (This)->lpVtbl -> SaveCompleted(This,pimkName,pibc) ) - -#define IPersistMoniker_GetCurMoniker(This,ppimkName) \ - ( (This)->lpVtbl -> GetCurMoniker(This,ppimkName) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IPersistMoniker_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0001 */ -/* [local] */ - -#endif -#ifndef _LPMONIKERPROP_DEFINED -#define _LPMONIKERPROP_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0001_v0_0_s_ifspec; - -#ifndef __IMonikerProp_INTERFACE_DEFINED__ -#define __IMonikerProp_INTERFACE_DEFINED__ - -/* interface IMonikerProp */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IMonikerProp *LPMONIKERPROP; - -typedef /* [public][public] */ -enum __MIDL_IMonikerProp_0001 - { - MIMETYPEPROP = 0, - USE_SRC_URL = 0x1, - CLASSIDPROP = 0x2, - TRUSTEDDOWNLOADPROP = 0x3, - POPUPLEVELPROP = 0x4 - } MONIKERPROPERTY; - - -EXTERN_C const IID IID_IMonikerProp; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a5ca5f7f-1847-4d87-9c5b-918509f7511d") - IMonikerProp : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE PutProperty( - /* [in] */ MONIKERPROPERTY mkp, - /* [in] */ __RPC__in LPCWSTR val) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IMonikerPropVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IMonikerProp * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IMonikerProp * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IMonikerProp * This); - - HRESULT ( STDMETHODCALLTYPE *PutProperty )( - __RPC__in IMonikerProp * This, - /* [in] */ MONIKERPROPERTY mkp, - /* [in] */ __RPC__in LPCWSTR val); - - END_INTERFACE - } IMonikerPropVtbl; - - interface IMonikerProp - { - CONST_VTBL struct IMonikerPropVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMonikerProp_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMonikerProp_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMonikerProp_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMonikerProp_PutProperty(This,mkp,val) \ - ( (This)->lpVtbl -> PutProperty(This,mkp,val) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMonikerProp_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0002 */ -/* [local] */ - -#endif -#ifndef _LPBINDPROTOCOL_DEFINED -#define _LPBINDPROTOCOL_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0002_v0_0_s_ifspec; - -#ifndef __IBindProtocol_INTERFACE_DEFINED__ -#define __IBindProtocol_INTERFACE_DEFINED__ - -/* interface IBindProtocol */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IBindProtocol *LPBINDPROTOCOL; - - -EXTERN_C const IID IID_IBindProtocol; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9cd-baf9-11ce-8c82-00aa004ba90b") - IBindProtocol : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateBinding( - /* [in] */ LPCWSTR szUrl, - /* [in] */ IBindCtx *pbc, - /* [out] */ IBinding **ppb) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IBindProtocolVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IBindProtocol * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IBindProtocol * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IBindProtocol * This); - - HRESULT ( STDMETHODCALLTYPE *CreateBinding )( - IBindProtocol * This, - /* [in] */ LPCWSTR szUrl, - /* [in] */ IBindCtx *pbc, - /* [out] */ IBinding **ppb); - - END_INTERFACE - } IBindProtocolVtbl; - - interface IBindProtocol - { - CONST_VTBL struct IBindProtocolVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IBindProtocol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IBindProtocol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IBindProtocol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IBindProtocol_CreateBinding(This,szUrl,pbc,ppb) \ - ( (This)->lpVtbl -> CreateBinding(This,szUrl,pbc,ppb) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IBindProtocol_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0003 */ -/* [local] */ - -#endif -#ifndef _LPBINDING_DEFINED -#define _LPBINDING_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0003_v0_0_s_ifspec; - -#ifndef __IBinding_INTERFACE_DEFINED__ -#define __IBinding_INTERFACE_DEFINED__ - -/* interface IBinding */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IBinding *LPBINDING; - - -EXTERN_C const IID IID_IBinding; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9c0-baf9-11ce-8c82-00aa004ba90b") - IBinding : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Suspend( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPriority( - /* [in] */ LONG nPriority) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPriority( - /* [out] */ __RPC__out LONG *pnPriority) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetBindResult( - /* [out] */ CLSID *pclsidProtocol, - /* [out] */ DWORD *pdwResult, - /* [annotation][out] */ - __RPC__out LPOLESTR *pszResult, - /* [out][in] */ DWORD *pdwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IBindingVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IBinding * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IBinding * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IBinding * This); - - HRESULT ( STDMETHODCALLTYPE *Abort )( - __RPC__in IBinding * This); - - HRESULT ( STDMETHODCALLTYPE *Suspend )( - __RPC__in IBinding * This); - - HRESULT ( STDMETHODCALLTYPE *Resume )( - __RPC__in IBinding * This); - - HRESULT ( STDMETHODCALLTYPE *SetPriority )( - __RPC__in IBinding * This, - /* [in] */ LONG nPriority); - - HRESULT ( STDMETHODCALLTYPE *GetPriority )( - __RPC__in IBinding * This, - /* [out] */ __RPC__out LONG *pnPriority); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBindResult )( - IBinding * This, - /* [out] */ CLSID *pclsidProtocol, - /* [out] */ DWORD *pdwResult, - /* [annotation][out] */ - __RPC__out LPOLESTR *pszResult, - /* [out][in] */ DWORD *pdwReserved); - - END_INTERFACE - } IBindingVtbl; - - interface IBinding - { - CONST_VTBL struct IBindingVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IBinding_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IBinding_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IBinding_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IBinding_Abort(This) \ - ( (This)->lpVtbl -> Abort(This) ) - -#define IBinding_Suspend(This) \ - ( (This)->lpVtbl -> Suspend(This) ) - -#define IBinding_Resume(This) \ - ( (This)->lpVtbl -> Resume(This) ) - -#define IBinding_SetPriority(This,nPriority) \ - ( (This)->lpVtbl -> SetPriority(This,nPriority) ) - -#define IBinding_GetPriority(This,pnPriority) \ - ( (This)->lpVtbl -> GetPriority(This,pnPriority) ) - -#define IBinding_GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved) \ - ( (This)->lpVtbl -> GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBinding_RemoteGetBindResult_Proxy( - __RPC__in IBinding * This, - /* [out] */ __RPC__out CLSID *pclsidProtocol, - /* [out] */ __RPC__out DWORD *pdwResult, - /* [out] */ __RPC__deref_out_opt LPOLESTR *pszResult, - /* [in] */ DWORD dwReserved); - - -void __RPC_STUB IBinding_RemoteGetBindResult_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IBinding_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0004 */ -/* [local] */ - -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -#pragma region Application Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) -#ifndef _LPBINDSTATUSCALLBACK_DEFINED -#define _LPBINDSTATUSCALLBACK_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0004_v0_0_s_ifspec; - -#ifndef __IBindStatusCallback_INTERFACE_DEFINED__ -#define __IBindStatusCallback_INTERFACE_DEFINED__ - -/* interface IBindStatusCallback */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IBindStatusCallback *LPBINDSTATUSCALLBACK; - -typedef /* [public] */ -enum __MIDL_IBindStatusCallback_0001 - { - BINDVERB_GET = 0, - BINDVERB_POST = 0x1, - BINDVERB_PUT = 0x2, - BINDVERB_CUSTOM = 0x3, - BINDVERB_RESERVED1 = 0x4 - } BINDVERB; - -typedef /* [public] */ -enum __MIDL_IBindStatusCallback_0002 - { - BINDINFOF_URLENCODESTGMEDDATA = 0x1, - BINDINFOF_URLENCODEDEXTRAINFO = 0x2 - } BINDINFOF; - -typedef /* [public] */ -enum __MIDL_IBindStatusCallback_0003 - { - BINDF_ASYNCHRONOUS = 0x1, - BINDF_ASYNCSTORAGE = 0x2, - BINDF_NOPROGRESSIVERENDERING = 0x4, - BINDF_OFFLINEOPERATION = 0x8, - BINDF_GETNEWESTVERSION = 0x10, - BINDF_NOWRITECACHE = 0x20, - BINDF_NEEDFILE = 0x40, - BINDF_PULLDATA = 0x80, - BINDF_IGNORESECURITYPROBLEM = 0x100, - BINDF_RESYNCHRONIZE = 0x200, - BINDF_HYPERLINK = 0x400, - BINDF_NO_UI = 0x800, - BINDF_SILENTOPERATION = 0x1000, - BINDF_PRAGMA_NO_CACHE = 0x2000, - BINDF_GETCLASSOBJECT = 0x4000, - BINDF_RESERVED_1 = 0x8000, - BINDF_FREE_THREADED = 0x10000, - BINDF_DIRECT_READ = 0x20000, - BINDF_FORMS_SUBMIT = 0x40000, - BINDF_GETFROMCACHE_IF_NET_FAIL = 0x80000, - BINDF_FROMURLMON = 0x100000, - BINDF_FWD_BACK = 0x200000, - BINDF_PREFERDEFAULTHANDLER = 0x400000, - BINDF_ENFORCERESTRICTED = 0x800000, - BINDF_RESERVED_2 = 0x80000000, - BINDF_RESERVED_3 = 0x1000000, - BINDF_RESERVED_4 = 0x2000000, - BINDF_RESERVED_5 = 0x4000000, - BINDF_RESERVED_6 = 0x8000000, - BINDF_RESERVED_7 = 0x40000000, - BINDF_RESERVED_8 = 0x20000000 - } BINDF; - -typedef /* [public] */ -enum __MIDL_IBindStatusCallback_0004 - { - URL_ENCODING_NONE = 0, - URL_ENCODING_ENABLE_UTF8 = 0x10000000, - URL_ENCODING_DISABLE_UTF8 = 0x20000000 - } URL_ENCODING; - -typedef struct _tagBINDINFO - { - ULONG cbSize; - LPWSTR szExtraInfo; - STGMEDIUM stgmedData; - DWORD grfBindInfoF; - DWORD dwBindVerb; - LPWSTR szCustomVerb; - DWORD cbstgmedData; - DWORD dwOptions; - DWORD dwOptionsFlags; - DWORD dwCodePage; - SECURITY_ATTRIBUTES securityAttributes; - IID iid; - IUnknown *pUnk; - DWORD dwReserved; - } BINDINFO; - -typedef struct _REMSECURITY_ATTRIBUTES - { - DWORD nLength; - DWORD lpSecurityDescriptor; - BOOL bInheritHandle; - } REMSECURITY_ATTRIBUTES; - -typedef struct _REMSECURITY_ATTRIBUTES *PREMSECURITY_ATTRIBUTES; - -typedef struct _REMSECURITY_ATTRIBUTES *LPREMSECURITY_ATTRIBUTES; - -typedef struct _tagRemBINDINFO - { - ULONG cbSize; - LPWSTR szExtraInfo; - DWORD grfBindInfoF; - DWORD dwBindVerb; - LPWSTR szCustomVerb; - DWORD cbstgmedData; - DWORD dwOptions; - DWORD dwOptionsFlags; - DWORD dwCodePage; - REMSECURITY_ATTRIBUTES securityAttributes; - IID iid; - IUnknown *pUnk; - DWORD dwReserved; - } RemBINDINFO; - -typedef struct tagRemFORMATETC - { - DWORD cfFormat; - DWORD ptd; - DWORD dwAspect; - LONG lindex; - DWORD tymed; - } RemFORMATETC; - -typedef struct tagRemFORMATETC *LPREMFORMATETC; - -typedef /* [public] */ -enum __MIDL_IBindStatusCallback_0005 - { - BINDINFO_OPTIONS_WININETFLAG = 0x10000, - BINDINFO_OPTIONS_ENABLE_UTF8 = 0x20000, - BINDINFO_OPTIONS_DISABLE_UTF8 = 0x40000, - BINDINFO_OPTIONS_USE_IE_ENCODING = 0x80000, - BINDINFO_OPTIONS_BINDTOOBJECT = 0x100000, - BINDINFO_OPTIONS_SECURITYOPTOUT = 0x200000, - BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN = 0x400000, - BINDINFO_OPTIONS_USEBINDSTRINGCREDS = 0x800000, - BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS = 0x1000000, - BINDINFO_OPTIONS_IGNORE_SSLERRORS_ONCE = 0x2000000, - BINDINFO_WPC_DOWNLOADBLOCKED = 0x8000000, - BINDINFO_WPC_LOGGING_ENABLED = 0x10000000, - BINDINFO_OPTIONS_ALLOWCONNECTDATA = 0x20000000, - BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS = 0x40000000, - BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = ( int )0x80000000 - } BINDINFO_OPTIONS; - -typedef /* [public] */ -enum __MIDL_IBindStatusCallback_0006 - { - BSCF_FIRSTDATANOTIFICATION = 0x1, - BSCF_INTERMEDIATEDATANOTIFICATION = 0x2, - BSCF_LASTDATANOTIFICATION = 0x4, - BSCF_DATAFULLYAVAILABLE = 0x8, - BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10, - BSCF_SKIPDRAINDATAFORFILEURLS = 0x20, - BSCF_64BITLENGTHDOWNLOAD = 0x40 - } BSCF; - -typedef -enum tagBINDSTATUS - { - BINDSTATUS_FINDINGRESOURCE = 1, - BINDSTATUS_CONNECTING = ( BINDSTATUS_FINDINGRESOURCE + 1 ) , - BINDSTATUS_REDIRECTING = ( BINDSTATUS_CONNECTING + 1 ) , - BINDSTATUS_BEGINDOWNLOADDATA = ( BINDSTATUS_REDIRECTING + 1 ) , - BINDSTATUS_DOWNLOADINGDATA = ( BINDSTATUS_BEGINDOWNLOADDATA + 1 ) , - BINDSTATUS_ENDDOWNLOADDATA = ( BINDSTATUS_DOWNLOADINGDATA + 1 ) , - BINDSTATUS_BEGINDOWNLOADCOMPONENTS = ( BINDSTATUS_ENDDOWNLOADDATA + 1 ) , - BINDSTATUS_INSTALLINGCOMPONENTS = ( BINDSTATUS_BEGINDOWNLOADCOMPONENTS + 1 ) , - BINDSTATUS_ENDDOWNLOADCOMPONENTS = ( BINDSTATUS_INSTALLINGCOMPONENTS + 1 ) , - BINDSTATUS_USINGCACHEDCOPY = ( BINDSTATUS_ENDDOWNLOADCOMPONENTS + 1 ) , - BINDSTATUS_SENDINGREQUEST = ( BINDSTATUS_USINGCACHEDCOPY + 1 ) , - BINDSTATUS_CLASSIDAVAILABLE = ( BINDSTATUS_SENDINGREQUEST + 1 ) , - BINDSTATUS_MIMETYPEAVAILABLE = ( BINDSTATUS_CLASSIDAVAILABLE + 1 ) , - BINDSTATUS_CACHEFILENAMEAVAILABLE = ( BINDSTATUS_MIMETYPEAVAILABLE + 1 ) , - BINDSTATUS_BEGINSYNCOPERATION = ( BINDSTATUS_CACHEFILENAMEAVAILABLE + 1 ) , - BINDSTATUS_ENDSYNCOPERATION = ( BINDSTATUS_BEGINSYNCOPERATION + 1 ) , - BINDSTATUS_BEGINUPLOADDATA = ( BINDSTATUS_ENDSYNCOPERATION + 1 ) , - BINDSTATUS_UPLOADINGDATA = ( BINDSTATUS_BEGINUPLOADDATA + 1 ) , - BINDSTATUS_ENDUPLOADDATA = ( BINDSTATUS_UPLOADINGDATA + 1 ) , - BINDSTATUS_PROTOCOLCLASSID = ( BINDSTATUS_ENDUPLOADDATA + 1 ) , - BINDSTATUS_ENCODING = ( BINDSTATUS_PROTOCOLCLASSID + 1 ) , - BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE = ( BINDSTATUS_ENCODING + 1 ) , - BINDSTATUS_CLASSINSTALLLOCATION = ( BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE + 1 ) , - BINDSTATUS_DECODING = ( BINDSTATUS_CLASSINSTALLLOCATION + 1 ) , - BINDSTATUS_LOADINGMIMEHANDLER = ( BINDSTATUS_DECODING + 1 ) , - BINDSTATUS_CONTENTDISPOSITIONATTACH = ( BINDSTATUS_LOADINGMIMEHANDLER + 1 ) , - BINDSTATUS_FILTERREPORTMIMETYPE = ( BINDSTATUS_CONTENTDISPOSITIONATTACH + 1 ) , - BINDSTATUS_CLSIDCANINSTANTIATE = ( BINDSTATUS_FILTERREPORTMIMETYPE + 1 ) , - BINDSTATUS_IUNKNOWNAVAILABLE = ( BINDSTATUS_CLSIDCANINSTANTIATE + 1 ) , - BINDSTATUS_DIRECTBIND = ( BINDSTATUS_IUNKNOWNAVAILABLE + 1 ) , - BINDSTATUS_RAWMIMETYPE = ( BINDSTATUS_DIRECTBIND + 1 ) , - BINDSTATUS_PROXYDETECTING = ( BINDSTATUS_RAWMIMETYPE + 1 ) , - BINDSTATUS_ACCEPTRANGES = ( BINDSTATUS_PROXYDETECTING + 1 ) , - BINDSTATUS_COOKIE_SENT = ( BINDSTATUS_ACCEPTRANGES + 1 ) , - BINDSTATUS_COMPACT_POLICY_RECEIVED = ( BINDSTATUS_COOKIE_SENT + 1 ) , - BINDSTATUS_COOKIE_SUPPRESSED = ( BINDSTATUS_COMPACT_POLICY_RECEIVED + 1 ) , - BINDSTATUS_COOKIE_STATE_UNKNOWN = ( BINDSTATUS_COOKIE_SUPPRESSED + 1 ) , - BINDSTATUS_COOKIE_STATE_ACCEPT = ( BINDSTATUS_COOKIE_STATE_UNKNOWN + 1 ) , - BINDSTATUS_COOKIE_STATE_REJECT = ( BINDSTATUS_COOKIE_STATE_ACCEPT + 1 ) , - BINDSTATUS_COOKIE_STATE_PROMPT = ( BINDSTATUS_COOKIE_STATE_REJECT + 1 ) , - BINDSTATUS_COOKIE_STATE_LEASH = ( BINDSTATUS_COOKIE_STATE_PROMPT + 1 ) , - BINDSTATUS_COOKIE_STATE_DOWNGRADE = ( BINDSTATUS_COOKIE_STATE_LEASH + 1 ) , - BINDSTATUS_POLICY_HREF = ( BINDSTATUS_COOKIE_STATE_DOWNGRADE + 1 ) , - BINDSTATUS_P3P_HEADER = ( BINDSTATUS_POLICY_HREF + 1 ) , - BINDSTATUS_SESSION_COOKIE_RECEIVED = ( BINDSTATUS_P3P_HEADER + 1 ) , - BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = ( BINDSTATUS_SESSION_COOKIE_RECEIVED + 1 ) , - BINDSTATUS_SESSION_COOKIES_ALLOWED = ( BINDSTATUS_PERSISTENT_COOKIE_RECEIVED + 1 ) , - BINDSTATUS_CACHECONTROL = ( BINDSTATUS_SESSION_COOKIES_ALLOWED + 1 ) , - BINDSTATUS_CONTENTDISPOSITIONFILENAME = ( BINDSTATUS_CACHECONTROL + 1 ) , - BINDSTATUS_MIMETEXTPLAINMISMATCH = ( BINDSTATUS_CONTENTDISPOSITIONFILENAME + 1 ) , - BINDSTATUS_PUBLISHERAVAILABLE = ( BINDSTATUS_MIMETEXTPLAINMISMATCH + 1 ) , - BINDSTATUS_DISPLAYNAMEAVAILABLE = ( BINDSTATUS_PUBLISHERAVAILABLE + 1 ) , - BINDSTATUS_SSLUX_NAVBLOCKED = ( BINDSTATUS_DISPLAYNAMEAVAILABLE + 1 ) , - BINDSTATUS_SERVER_MIMETYPEAVAILABLE = ( BINDSTATUS_SSLUX_NAVBLOCKED + 1 ) , - BINDSTATUS_SNIFFED_CLASSIDAVAILABLE = ( BINDSTATUS_SERVER_MIMETYPEAVAILABLE + 1 ) , - BINDSTATUS_64BIT_PROGRESS = ( BINDSTATUS_SNIFFED_CLASSIDAVAILABLE + 1 ) , - BINDSTATUS_LAST = BINDSTATUS_64BIT_PROGRESS, - BINDSTATUS_RESERVED_0 = ( BINDSTATUS_LAST + 1 ) , - BINDSTATUS_RESERVED_1 = ( BINDSTATUS_RESERVED_0 + 1 ) , - BINDSTATUS_RESERVED_2 = ( BINDSTATUS_RESERVED_1 + 1 ) , - BINDSTATUS_RESERVED_3 = ( BINDSTATUS_RESERVED_2 + 1 ) , - BINDSTATUS_RESERVED_4 = ( BINDSTATUS_RESERVED_3 + 1 ) , - BINDSTATUS_RESERVED_5 = ( BINDSTATUS_RESERVED_4 + 1 ) , - BINDSTATUS_RESERVED_6 = ( BINDSTATUS_RESERVED_5 + 1 ) , - BINDSTATUS_RESERVED_7 = ( BINDSTATUS_RESERVED_6 + 1 ) , - BINDSTATUS_RESERVED_8 = ( BINDSTATUS_RESERVED_7 + 1 ) , - BINDSTATUS_RESERVED_9 = ( BINDSTATUS_RESERVED_8 + 1 ) , - BINDSTATUS_RESERVED_A = ( BINDSTATUS_RESERVED_9 + 1 ) , - BINDSTATUS_RESERVED_B = ( BINDSTATUS_RESERVED_A + 1 ) , - BINDSTATUS_RESERVED_C = ( BINDSTATUS_RESERVED_B + 1 ) , - BINDSTATUS_RESERVED_D = ( BINDSTATUS_RESERVED_C + 1 ) , - BINDSTATUS_RESERVED_E = ( BINDSTATUS_RESERVED_D + 1 ) , - BINDSTATUS_RESERVED_F = ( BINDSTATUS_RESERVED_E + 1 ) , - BINDSTATUS_RESERVED_10 = ( BINDSTATUS_RESERVED_F + 1 ) , - BINDSTATUS_RESERVED_11 = ( BINDSTATUS_RESERVED_10 + 1 ) , - BINDSTATUS_RESERVED_12 = ( BINDSTATUS_RESERVED_11 + 1 ) , - BINDSTATUS_RESERVED_13 = ( BINDSTATUS_RESERVED_12 + 1 ) , - BINDSTATUS_LAST_PRIVATE = BINDSTATUS_RESERVED_13 - } BINDSTATUS; - - -EXTERN_C const IID IID_IBindStatusCallback; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9c1-baf9-11ce-8c82-00aa004ba90b") - IBindStatusCallback : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE OnStartBinding( - /* [in] */ DWORD dwReserved, - /* [in] */ __RPC__in_opt IBinding *pib) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPriority( - /* [out] */ __RPC__out LONG *pnPriority) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnLowResource( - /* [in] */ DWORD reserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnProgress( - /* [in] */ ULONG ulProgress, - /* [in] */ ULONG ulProgressMax, - /* [in] */ ULONG ulStatusCode, - /* [unique][in] */ __RPC__in_opt LPCWSTR szStatusText) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnStopBinding( - /* [in] */ HRESULT hresult, - /* [unique][in] */ __RPC__in_opt LPCWSTR szError) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetBindInfo( - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE OnDataAvailable( - /* [in] */ DWORD grfBSCF, - /* [in] */ DWORD dwSize, - /* [in] */ FORMATETC *pformatetc, - /* [in] */ STGMEDIUM *pstgmed) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable( - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][in] */ __RPC__in_opt IUnknown *punk) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IBindStatusCallbackVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IBindStatusCallback * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IBindStatusCallback * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IBindStatusCallback * This); - - HRESULT ( STDMETHODCALLTYPE *OnStartBinding )( - __RPC__in IBindStatusCallback * This, - /* [in] */ DWORD dwReserved, - /* [in] */ __RPC__in_opt IBinding *pib); - - HRESULT ( STDMETHODCALLTYPE *GetPriority )( - __RPC__in IBindStatusCallback * This, - /* [out] */ __RPC__out LONG *pnPriority); - - HRESULT ( STDMETHODCALLTYPE *OnLowResource )( - __RPC__in IBindStatusCallback * This, - /* [in] */ DWORD reserved); - - HRESULT ( STDMETHODCALLTYPE *OnProgress )( - __RPC__in IBindStatusCallback * This, - /* [in] */ ULONG ulProgress, - /* [in] */ ULONG ulProgressMax, - /* [in] */ ULONG ulStatusCode, - /* [unique][in] */ __RPC__in_opt LPCWSTR szStatusText); - - HRESULT ( STDMETHODCALLTYPE *OnStopBinding )( - __RPC__in IBindStatusCallback * This, - /* [in] */ HRESULT hresult, - /* [unique][in] */ __RPC__in_opt LPCWSTR szError); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBindInfo )( - IBindStatusCallback * This, - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *OnDataAvailable )( - IBindStatusCallback * This, - /* [in] */ DWORD grfBSCF, - /* [in] */ DWORD dwSize, - /* [in] */ FORMATETC *pformatetc, - /* [in] */ STGMEDIUM *pstgmed); - - HRESULT ( STDMETHODCALLTYPE *OnObjectAvailable )( - __RPC__in IBindStatusCallback * This, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][in] */ __RPC__in_opt IUnknown *punk); - - END_INTERFACE - } IBindStatusCallbackVtbl; - - interface IBindStatusCallback - { - CONST_VTBL struct IBindStatusCallbackVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IBindStatusCallback_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IBindStatusCallback_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IBindStatusCallback_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IBindStatusCallback_OnStartBinding(This,dwReserved,pib) \ - ( (This)->lpVtbl -> OnStartBinding(This,dwReserved,pib) ) - -#define IBindStatusCallback_GetPriority(This,pnPriority) \ - ( (This)->lpVtbl -> GetPriority(This,pnPriority) ) - -#define IBindStatusCallback_OnLowResource(This,reserved) \ - ( (This)->lpVtbl -> OnLowResource(This,reserved) ) - -#define IBindStatusCallback_OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText) \ - ( (This)->lpVtbl -> OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText) ) - -#define IBindStatusCallback_OnStopBinding(This,hresult,szError) \ - ( (This)->lpVtbl -> OnStopBinding(This,hresult,szError) ) - -#define IBindStatusCallback_GetBindInfo(This,grfBINDF,pbindinfo) \ - ( (This)->lpVtbl -> GetBindInfo(This,grfBINDF,pbindinfo) ) - -#define IBindStatusCallback_OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed) \ - ( (This)->lpVtbl -> OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed) ) - -#define IBindStatusCallback_OnObjectAvailable(This,riid,punk) \ - ( (This)->lpVtbl -> OnObjectAvailable(This,riid,punk) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteGetBindInfo_Proxy( - __RPC__in IBindStatusCallback * This, - /* [out] */ __RPC__out DWORD *grfBINDF, - /* [unique][out][in] */ __RPC__inout_opt RemBINDINFO *pbindinfo, - /* [unique][out][in] */ __RPC__inout_opt RemSTGMEDIUM *pstgmed); - - -void __RPC_STUB IBindStatusCallback_RemoteGetBindInfo_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteOnDataAvailable_Proxy( - __RPC__in IBindStatusCallback * This, - /* [in] */ DWORD grfBSCF, - /* [in] */ DWORD dwSize, - /* [in] */ __RPC__in RemFORMATETC *pformatetc, - /* [in] */ __RPC__in RemSTGMEDIUM *pstgmed); - - -void __RPC_STUB IBindStatusCallback_RemoteOnDataAvailable_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IBindStatusCallback_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0005 */ -/* [local] */ - -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#ifndef _LPBINDSTATUSCALLBACKEX_DEFINED -#define _LPBINDSTATUSCALLBACKEX_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0005_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0005_v0_0_s_ifspec; - -#ifndef __IBindStatusCallbackEx_INTERFACE_DEFINED__ -#define __IBindStatusCallbackEx_INTERFACE_DEFINED__ - -/* interface IBindStatusCallbackEx */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IBindStatusCallbackEx *LPBINDSTATUSCALLBACKEX; - -typedef /* [public] */ -enum __MIDL_IBindStatusCallbackEx_0001 - { - BINDF2_DISABLEBASICOVERHTTP = 0x1, - BINDF2_DISABLEAUTOCOOKIEHANDLING = 0x2, - BINDF2_READ_DATA_GREATER_THAN_4GB = 0x4, - BINDF2_DISABLE_HTTP_REDIRECT_XSECURITYID = 0x8, - BINDF2_SETDOWNLOADMODE = 0x20, - BINDF2_DISABLE_HTTP_REDIRECT_CACHING = 0x40, - BINDF2_KEEP_CALLBACK_MODULE_LOADED = 0x80, - BINDF2_ALLOW_PROXY_CRED_PROMPT = 0x100, - BINDF2_RESERVED_17 = 0x200, - BINDF2_RESERVED_16 = 0x400, - BINDF2_RESERVED_15 = 0x800, - BINDF2_RESERVED_14 = 0x1000, - BINDF2_RESERVED_13 = 0x2000, - BINDF2_RESERVED_12 = 0x4000, - BINDF2_RESERVED_11 = 0x8000, - BINDF2_RESERVED_10 = 0x10000, - BINDF2_RESERVED_F = 0x20000, - BINDF2_RESERVED_E = 0x40000, - BINDF2_RESERVED_D = 0x80000, - BINDF2_RESERVED_C = 0x100000, - BINDF2_RESERVED_B = 0x200000, - BINDF2_RESERVED_A = 0x400000, - BINDF2_RESERVED_9 = 0x800000, - BINDF2_RESERVED_8 = 0x1000000, - BINDF2_RESERVED_7 = 0x2000000, - BINDF2_RESERVED_6 = 0x4000000, - BINDF2_RESERVED_5 = 0x8000000, - BINDF2_RESERVED_4 = 0x10000000, - BINDF2_RESERVED_3 = 0x20000000, - BINDF2_RESERVED_2 = 0x40000000, - BINDF2_RESERVED_1 = 0x80000000 - } BINDF2; - - -EXTERN_C const IID IID_IBindStatusCallbackEx; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("aaa74ef9-8ee7-4659-88d9-f8c504da73cc") - IBindStatusCallbackEx : public IBindStatusCallback - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetBindInfoEx( - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo, - /* [out] */ DWORD *grfBINDF2, - /* [out] */ DWORD *pdwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IBindStatusCallbackExVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IBindStatusCallbackEx * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IBindStatusCallbackEx * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IBindStatusCallbackEx * This); - - HRESULT ( STDMETHODCALLTYPE *OnStartBinding )( - __RPC__in IBindStatusCallbackEx * This, - /* [in] */ DWORD dwReserved, - /* [in] */ __RPC__in_opt IBinding *pib); - - HRESULT ( STDMETHODCALLTYPE *GetPriority )( - __RPC__in IBindStatusCallbackEx * This, - /* [out] */ __RPC__out LONG *pnPriority); - - HRESULT ( STDMETHODCALLTYPE *OnLowResource )( - __RPC__in IBindStatusCallbackEx * This, - /* [in] */ DWORD reserved); - - HRESULT ( STDMETHODCALLTYPE *OnProgress )( - __RPC__in IBindStatusCallbackEx * This, - /* [in] */ ULONG ulProgress, - /* [in] */ ULONG ulProgressMax, - /* [in] */ ULONG ulStatusCode, - /* [unique][in] */ __RPC__in_opt LPCWSTR szStatusText); - - HRESULT ( STDMETHODCALLTYPE *OnStopBinding )( - __RPC__in IBindStatusCallbackEx * This, - /* [in] */ HRESULT hresult, - /* [unique][in] */ __RPC__in_opt LPCWSTR szError); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBindInfo )( - IBindStatusCallbackEx * This, - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *OnDataAvailable )( - IBindStatusCallbackEx * This, - /* [in] */ DWORD grfBSCF, - /* [in] */ DWORD dwSize, - /* [in] */ FORMATETC *pformatetc, - /* [in] */ STGMEDIUM *pstgmed); - - HRESULT ( STDMETHODCALLTYPE *OnObjectAvailable )( - __RPC__in IBindStatusCallbackEx * This, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][in] */ __RPC__in_opt IUnknown *punk); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBindInfoEx )( - IBindStatusCallbackEx * This, - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo, - /* [out] */ DWORD *grfBINDF2, - /* [out] */ DWORD *pdwReserved); - - END_INTERFACE - } IBindStatusCallbackExVtbl; - - interface IBindStatusCallbackEx - { - CONST_VTBL struct IBindStatusCallbackExVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IBindStatusCallbackEx_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IBindStatusCallbackEx_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IBindStatusCallbackEx_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IBindStatusCallbackEx_OnStartBinding(This,dwReserved,pib) \ - ( (This)->lpVtbl -> OnStartBinding(This,dwReserved,pib) ) - -#define IBindStatusCallbackEx_GetPriority(This,pnPriority) \ - ( (This)->lpVtbl -> GetPriority(This,pnPriority) ) - -#define IBindStatusCallbackEx_OnLowResource(This,reserved) \ - ( (This)->lpVtbl -> OnLowResource(This,reserved) ) - -#define IBindStatusCallbackEx_OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText) \ - ( (This)->lpVtbl -> OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText) ) - -#define IBindStatusCallbackEx_OnStopBinding(This,hresult,szError) \ - ( (This)->lpVtbl -> OnStopBinding(This,hresult,szError) ) - -#define IBindStatusCallbackEx_GetBindInfo(This,grfBINDF,pbindinfo) \ - ( (This)->lpVtbl -> GetBindInfo(This,grfBINDF,pbindinfo) ) - -#define IBindStatusCallbackEx_OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed) \ - ( (This)->lpVtbl -> OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed) ) - -#define IBindStatusCallbackEx_OnObjectAvailable(This,riid,punk) \ - ( (This)->lpVtbl -> OnObjectAvailable(This,riid,punk) ) - - -#define IBindStatusCallbackEx_GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved) \ - ( (This)->lpVtbl -> GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindStatusCallbackEx_RemoteGetBindInfoEx_Proxy( - __RPC__in IBindStatusCallbackEx * This, - /* [out] */ __RPC__out DWORD *grfBINDF, - /* [unique][out][in] */ __RPC__inout_opt RemBINDINFO *pbindinfo, - /* [unique][out][in] */ __RPC__inout_opt RemSTGMEDIUM *pstgmed, - /* [out] */ __RPC__out DWORD *grfBINDF2, - /* [out] */ __RPC__out DWORD *pdwReserved); - - -void __RPC_STUB IBindStatusCallbackEx_RemoteGetBindInfoEx_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IBindStatusCallbackEx_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0006 */ -/* [local] */ - -#endif -#ifndef _LPAUTHENTICATION_DEFINED -#define _LPAUTHENTICATION_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0006_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0006_v0_0_s_ifspec; - -#ifndef __IAuthenticate_INTERFACE_DEFINED__ -#define __IAuthenticate_INTERFACE_DEFINED__ - -/* interface IAuthenticate */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IAuthenticate *LPAUTHENTICATION; - - -EXTERN_C const IID IID_IAuthenticate; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9d0-baf9-11ce-8c82-00aa004ba90b") - IAuthenticate : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Authenticate( - /* [out] */ __RPC__deref_out_opt HWND *phwnd, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszUsername, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszPassword) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAuthenticateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IAuthenticate * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IAuthenticate * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IAuthenticate * This); - - HRESULT ( STDMETHODCALLTYPE *Authenticate )( - __RPC__in IAuthenticate * This, - /* [out] */ __RPC__deref_out_opt HWND *phwnd, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszUsername, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszPassword); - - END_INTERFACE - } IAuthenticateVtbl; - - interface IAuthenticate - { - CONST_VTBL struct IAuthenticateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAuthenticate_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAuthenticate_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAuthenticate_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAuthenticate_Authenticate(This,phwnd,pszUsername,pszPassword) \ - ( (This)->lpVtbl -> Authenticate(This,phwnd,pszUsername,pszPassword) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAuthenticate_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0007 */ -/* [local] */ - -#endif -#ifndef _LPAUTHENTICATIONEX_DEFINED -#define _LPAUTHENTICATIONEX_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0007_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0007_v0_0_s_ifspec; - -#ifndef __IAuthenticateEx_INTERFACE_DEFINED__ -#define __IAuthenticateEx_INTERFACE_DEFINED__ - -/* interface IAuthenticateEx */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IAuthenticateEx *LPAUTHENTICATIONEX; - -typedef /* [public] */ -enum __MIDL_IAuthenticateEx_0001 - { - AUTHENTICATEF_PROXY = 0x1, - AUTHENTICATEF_BASIC = 0x2, - AUTHENTICATEF_HTTP = 0x4 - } AUTHENTICATEF; - -typedef struct _tagAUTHENTICATEINFO - { - DWORD dwFlags; - DWORD dwReserved; - } AUTHENTICATEINFO; - - -EXTERN_C const IID IID_IAuthenticateEx; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2ad1edaf-d83d-48b5-9adf-03dbe19f53bd") - IAuthenticateEx : public IAuthenticate - { - public: - virtual HRESULT STDMETHODCALLTYPE AuthenticateEx( - /* [out] */ __RPC__deref_out_opt HWND *phwnd, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszUsername, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszPassword, - /* [in] */ __RPC__in AUTHENTICATEINFO *pauthinfo) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAuthenticateExVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IAuthenticateEx * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IAuthenticateEx * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IAuthenticateEx * This); - - HRESULT ( STDMETHODCALLTYPE *Authenticate )( - __RPC__in IAuthenticateEx * This, - /* [out] */ __RPC__deref_out_opt HWND *phwnd, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszUsername, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszPassword); - - HRESULT ( STDMETHODCALLTYPE *AuthenticateEx )( - __RPC__in IAuthenticateEx * This, - /* [out] */ __RPC__deref_out_opt HWND *phwnd, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszUsername, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszPassword, - /* [in] */ __RPC__in AUTHENTICATEINFO *pauthinfo); - - END_INTERFACE - } IAuthenticateExVtbl; - - interface IAuthenticateEx - { - CONST_VTBL struct IAuthenticateExVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAuthenticateEx_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAuthenticateEx_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAuthenticateEx_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAuthenticateEx_Authenticate(This,phwnd,pszUsername,pszPassword) \ - ( (This)->lpVtbl -> Authenticate(This,phwnd,pszUsername,pszPassword) ) - - -#define IAuthenticateEx_AuthenticateEx(This,phwnd,pszUsername,pszPassword,pauthinfo) \ - ( (This)->lpVtbl -> AuthenticateEx(This,phwnd,pszUsername,pszPassword,pauthinfo) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAuthenticateEx_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0008 */ -/* [local] */ - -#endif -#ifndef _LPHTTPNEGOTIATE_DEFINED -#define _LPHTTPNEGOTIATE_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0008_v0_0_s_ifspec; - -#ifndef __IHttpNegotiate_INTERFACE_DEFINED__ -#define __IHttpNegotiate_INTERFACE_DEFINED__ - -/* interface IHttpNegotiate */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IHttpNegotiate *LPHTTPNEGOTIATE; - - -EXTERN_C const IID IID_IHttpNegotiate; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9d2-baf9-11ce-8c82-00aa004ba90b") - IHttpNegotiate : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE BeginningTransaction( - /* [in] */ __RPC__in LPCWSTR szURL, - /* [unique][in] */ __RPC__in_opt LPCWSTR szHeaders, - /* [in] */ DWORD dwReserved, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszAdditionalHeaders) = 0; - - virtual HRESULT STDMETHODCALLTYPE OnResponse( - /* [in] */ DWORD dwResponseCode, - /* [unique][in] */ __RPC__in_opt LPCWSTR szResponseHeaders, - /* [unique][in] */ __RPC__in_opt LPCWSTR szRequestHeaders, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszAdditionalRequestHeaders) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IHttpNegotiateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IHttpNegotiate * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IHttpNegotiate * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IHttpNegotiate * This); - - HRESULT ( STDMETHODCALLTYPE *BeginningTransaction )( - __RPC__in IHttpNegotiate * This, - /* [in] */ __RPC__in LPCWSTR szURL, - /* [unique][in] */ __RPC__in_opt LPCWSTR szHeaders, - /* [in] */ DWORD dwReserved, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszAdditionalHeaders); - - HRESULT ( STDMETHODCALLTYPE *OnResponse )( - __RPC__in IHttpNegotiate * This, - /* [in] */ DWORD dwResponseCode, - /* [unique][in] */ __RPC__in_opt LPCWSTR szResponseHeaders, - /* [unique][in] */ __RPC__in_opt LPCWSTR szRequestHeaders, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszAdditionalRequestHeaders); - - END_INTERFACE - } IHttpNegotiateVtbl; - - interface IHttpNegotiate - { - CONST_VTBL struct IHttpNegotiateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IHttpNegotiate_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IHttpNegotiate_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IHttpNegotiate_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IHttpNegotiate_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) \ - ( (This)->lpVtbl -> BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) ) - -#define IHttpNegotiate_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) \ - ( (This)->lpVtbl -> OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IHttpNegotiate_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0009 */ -/* [local] */ - -#endif -#ifndef _LPHTTPNEGOTIATE2_DEFINED -#define _LPHTTPNEGOTIATE2_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0009_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0009_v0_0_s_ifspec; - -#ifndef __IHttpNegotiate2_INTERFACE_DEFINED__ -#define __IHttpNegotiate2_INTERFACE_DEFINED__ - -/* interface IHttpNegotiate2 */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IHttpNegotiate2 *LPHTTPNEGOTIATE2; - - -EXTERN_C const IID IID_IHttpNegotiate2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("4F9F9FCB-E0F4-48eb-B7AB-FA2EA9365CB4") - IHttpNegotiate2 : public IHttpNegotiate - { - public: - virtual HRESULT STDMETHODCALLTYPE GetRootSecurityId( - /* [size_is][out] */ __RPC__out_ecount_full(*pcbSecurityId) BYTE *pbSecurityId, - /* [out][in] */ __RPC__inout DWORD *pcbSecurityId, - /* [in] */ DWORD_PTR dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IHttpNegotiate2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IHttpNegotiate2 * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IHttpNegotiate2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IHttpNegotiate2 * This); - - HRESULT ( STDMETHODCALLTYPE *BeginningTransaction )( - __RPC__in IHttpNegotiate2 * This, - /* [in] */ __RPC__in LPCWSTR szURL, - /* [unique][in] */ __RPC__in_opt LPCWSTR szHeaders, - /* [in] */ DWORD dwReserved, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszAdditionalHeaders); - - HRESULT ( STDMETHODCALLTYPE *OnResponse )( - __RPC__in IHttpNegotiate2 * This, - /* [in] */ DWORD dwResponseCode, - /* [unique][in] */ __RPC__in_opt LPCWSTR szResponseHeaders, - /* [unique][in] */ __RPC__in_opt LPCWSTR szRequestHeaders, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszAdditionalRequestHeaders); - - HRESULT ( STDMETHODCALLTYPE *GetRootSecurityId )( - __RPC__in IHttpNegotiate2 * This, - /* [size_is][out] */ __RPC__out_ecount_full(*pcbSecurityId) BYTE *pbSecurityId, - /* [out][in] */ __RPC__inout DWORD *pcbSecurityId, - /* [in] */ DWORD_PTR dwReserved); - - END_INTERFACE - } IHttpNegotiate2Vtbl; - - interface IHttpNegotiate2 - { - CONST_VTBL struct IHttpNegotiate2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IHttpNegotiate2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IHttpNegotiate2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IHttpNegotiate2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IHttpNegotiate2_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) \ - ( (This)->lpVtbl -> BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) ) - -#define IHttpNegotiate2_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) \ - ( (This)->lpVtbl -> OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) ) - - -#define IHttpNegotiate2_GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) \ - ( (This)->lpVtbl -> GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IHttpNegotiate2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0010 */ -/* [local] */ - -#endif -#ifndef _LPHTTPNEGOTIATE3_DEFINED -#define _LPHTTPNEGOTIATE3_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0010_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0010_v0_0_s_ifspec; - -#ifndef __IHttpNegotiate3_INTERFACE_DEFINED__ -#define __IHttpNegotiate3_INTERFACE_DEFINED__ - -/* interface IHttpNegotiate3 */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IHttpNegotiate3 *LPHTTPNEGOTIATE3; - - -EXTERN_C const IID IID_IHttpNegotiate3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("57b6c80a-34c2-4602-bc26-66a02fc57153") - IHttpNegotiate3 : public IHttpNegotiate2 - { - public: - virtual HRESULT STDMETHODCALLTYPE GetSerializedClientCertContext( - /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbCert) BYTE **ppbCert, - /* [out] */ __RPC__out DWORD *pcbCert) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IHttpNegotiate3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IHttpNegotiate3 * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IHttpNegotiate3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IHttpNegotiate3 * This); - - HRESULT ( STDMETHODCALLTYPE *BeginningTransaction )( - __RPC__in IHttpNegotiate3 * This, - /* [in] */ __RPC__in LPCWSTR szURL, - /* [unique][in] */ __RPC__in_opt LPCWSTR szHeaders, - /* [in] */ DWORD dwReserved, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszAdditionalHeaders); - - HRESULT ( STDMETHODCALLTYPE *OnResponse )( - __RPC__in IHttpNegotiate3 * This, - /* [in] */ DWORD dwResponseCode, - /* [unique][in] */ __RPC__in_opt LPCWSTR szResponseHeaders, - /* [unique][in] */ __RPC__in_opt LPCWSTR szRequestHeaders, - /* [out] */ __RPC__deref_out_opt LPWSTR *pszAdditionalRequestHeaders); - - HRESULT ( STDMETHODCALLTYPE *GetRootSecurityId )( - __RPC__in IHttpNegotiate3 * This, - /* [size_is][out] */ __RPC__out_ecount_full(*pcbSecurityId) BYTE *pbSecurityId, - /* [out][in] */ __RPC__inout DWORD *pcbSecurityId, - /* [in] */ DWORD_PTR dwReserved); - - HRESULT ( STDMETHODCALLTYPE *GetSerializedClientCertContext )( - __RPC__in IHttpNegotiate3 * This, - /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbCert) BYTE **ppbCert, - /* [out] */ __RPC__out DWORD *pcbCert); - - END_INTERFACE - } IHttpNegotiate3Vtbl; - - interface IHttpNegotiate3 - { - CONST_VTBL struct IHttpNegotiate3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IHttpNegotiate3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IHttpNegotiate3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IHttpNegotiate3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IHttpNegotiate3_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) \ - ( (This)->lpVtbl -> BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) ) - -#define IHttpNegotiate3_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) \ - ( (This)->lpVtbl -> OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) ) - - -#define IHttpNegotiate3_GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) \ - ( (This)->lpVtbl -> GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) ) - - -#define IHttpNegotiate3_GetSerializedClientCertContext(This,ppbCert,pcbCert) \ - ( (This)->lpVtbl -> GetSerializedClientCertContext(This,ppbCert,pcbCert) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IHttpNegotiate3_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0011 */ -/* [local] */ - -#endif -#ifndef _LPWININETFILESTREAM_DEFINED -#define _LPWININETFILESTREAM_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0011_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0011_v0_0_s_ifspec; - -#ifndef __IWinInetFileStream_INTERFACE_DEFINED__ -#define __IWinInetFileStream_INTERFACE_DEFINED__ - -/* interface IWinInetFileStream */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IWinInetFileStream *LPWININETFILESTREAM; - - -EXTERN_C const IID IID_IWinInetFileStream; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F134C4B7-B1F8-4e75-B886-74B90943BECB") - IWinInetFileStream : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetHandleForUnlock( - /* [in] */ DWORD_PTR hWinInetLockHandle, - /* [in] */ DWORD_PTR dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDeleteFile( - /* [in] */ DWORD_PTR dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IWinInetFileStreamVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IWinInetFileStream * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IWinInetFileStream * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IWinInetFileStream * This); - - HRESULT ( STDMETHODCALLTYPE *SetHandleForUnlock )( - __RPC__in IWinInetFileStream * This, - /* [in] */ DWORD_PTR hWinInetLockHandle, - /* [in] */ DWORD_PTR dwReserved); - - HRESULT ( STDMETHODCALLTYPE *SetDeleteFile )( - __RPC__in IWinInetFileStream * This, - /* [in] */ DWORD_PTR dwReserved); - - END_INTERFACE - } IWinInetFileStreamVtbl; - - interface IWinInetFileStream - { - CONST_VTBL struct IWinInetFileStreamVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IWinInetFileStream_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IWinInetFileStream_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IWinInetFileStream_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IWinInetFileStream_SetHandleForUnlock(This,hWinInetLockHandle,dwReserved) \ - ( (This)->lpVtbl -> SetHandleForUnlock(This,hWinInetLockHandle,dwReserved) ) - -#define IWinInetFileStream_SetDeleteFile(This,dwReserved) \ - ( (This)->lpVtbl -> SetDeleteFile(This,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IWinInetFileStream_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0012 */ -/* [local] */ - -#endif -#ifndef _LPWINDOWFORBINDINGUI_DEFINED -#define _LPWINDOWFORBINDINGUI_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0012_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0012_v0_0_s_ifspec; - -#ifndef __IWindowForBindingUI_INTERFACE_DEFINED__ -#define __IWindowForBindingUI_INTERFACE_DEFINED__ - -/* interface IWindowForBindingUI */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IWindowForBindingUI *LPWINDOWFORBINDINGUI; - - -EXTERN_C const IID IID_IWindowForBindingUI; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9d5-bafa-11ce-8c82-00aa004ba90b") - IWindowForBindingUI : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetWindow( - /* [in] */ REFGUID rguidReason, - /* [out] */ HWND *phwnd) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IWindowForBindingUIVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IWindowForBindingUI * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IWindowForBindingUI * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IWindowForBindingUI * This); - - HRESULT ( STDMETHODCALLTYPE *GetWindow )( - IWindowForBindingUI * This, - /* [in] */ REFGUID rguidReason, - /* [out] */ HWND *phwnd); - - END_INTERFACE - } IWindowForBindingUIVtbl; - - interface IWindowForBindingUI - { - CONST_VTBL struct IWindowForBindingUIVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IWindowForBindingUI_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IWindowForBindingUI_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IWindowForBindingUI_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IWindowForBindingUI_GetWindow(This,rguidReason,phwnd) \ - ( (This)->lpVtbl -> GetWindow(This,rguidReason,phwnd) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IWindowForBindingUI_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0013 */ -/* [local] */ - -#endif -#ifndef _LPCODEINSTALL_DEFINED -#define _LPCODEINSTALL_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0013_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0013_v0_0_s_ifspec; - -#ifndef __ICodeInstall_INTERFACE_DEFINED__ -#define __ICodeInstall_INTERFACE_DEFINED__ - -/* interface ICodeInstall */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ ICodeInstall *LPCODEINSTALL; - -typedef /* [public] */ -enum __MIDL_ICodeInstall_0001 - { - CIP_DISK_FULL = 0, - CIP_ACCESS_DENIED = ( CIP_DISK_FULL + 1 ) , - CIP_NEWER_VERSION_EXISTS = ( CIP_ACCESS_DENIED + 1 ) , - CIP_OLDER_VERSION_EXISTS = ( CIP_NEWER_VERSION_EXISTS + 1 ) , - CIP_NAME_CONFLICT = ( CIP_OLDER_VERSION_EXISTS + 1 ) , - CIP_TRUST_VERIFICATION_COMPONENT_MISSING = ( CIP_NAME_CONFLICT + 1 ) , - CIP_EXE_SELF_REGISTERATION_TIMEOUT = ( CIP_TRUST_VERIFICATION_COMPONENT_MISSING + 1 ) , - CIP_UNSAFE_TO_ABORT = ( CIP_EXE_SELF_REGISTERATION_TIMEOUT + 1 ) , - CIP_NEED_REBOOT = ( CIP_UNSAFE_TO_ABORT + 1 ) , - CIP_NEED_REBOOT_UI_PERMISSION = ( CIP_NEED_REBOOT + 1 ) - } CIP_STATUS; - - -EXTERN_C const IID IID_ICodeInstall; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9d1-baf9-11ce-8c82-00aa004ba90b") - ICodeInstall : public IWindowForBindingUI - { - public: - virtual HRESULT STDMETHODCALLTYPE OnCodeInstallProblem( - /* [in] */ ULONG ulStatusCode, - /* [unique][in] */ LPCWSTR szDestination, - /* [unique][in] */ LPCWSTR szSource, - /* [in] */ DWORD dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICodeInstallVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICodeInstall * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICodeInstall * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICodeInstall * This); - - HRESULT ( STDMETHODCALLTYPE *GetWindow )( - ICodeInstall * This, - /* [in] */ REFGUID rguidReason, - /* [out] */ HWND *phwnd); - - HRESULT ( STDMETHODCALLTYPE *OnCodeInstallProblem )( - ICodeInstall * This, - /* [in] */ ULONG ulStatusCode, - /* [unique][in] */ LPCWSTR szDestination, - /* [unique][in] */ LPCWSTR szSource, - /* [in] */ DWORD dwReserved); - - END_INTERFACE - } ICodeInstallVtbl; - - interface ICodeInstall - { - CONST_VTBL struct ICodeInstallVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICodeInstall_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICodeInstall_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICodeInstall_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICodeInstall_GetWindow(This,rguidReason,phwnd) \ - ( (This)->lpVtbl -> GetWindow(This,rguidReason,phwnd) ) - - -#define ICodeInstall_OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved) \ - ( (This)->lpVtbl -> OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICodeInstall_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0014 */ -/* [local] */ - -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -#if (_WIN32_IE >= _WIN32_IE_IE70) -#ifndef _LPUri_DEFINED -#define _LPUri_DEFINED -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0014_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0014_v0_0_s_ifspec; - -#ifndef __IUri_INTERFACE_DEFINED__ -#define __IUri_INTERFACE_DEFINED__ - -/* interface IUri */ -/* [unique][uuid][object] */ - -typedef /* [public][public][public][public][public][helpstring] */ -enum __MIDL_IUri_0001 - { - Uri_PROPERTY_ABSOLUTE_URI = 0, - Uri_PROPERTY_STRING_START = Uri_PROPERTY_ABSOLUTE_URI, - Uri_PROPERTY_AUTHORITY = 1, - Uri_PROPERTY_DISPLAY_URI = 2, - Uri_PROPERTY_DOMAIN = 3, - Uri_PROPERTY_EXTENSION = 4, - Uri_PROPERTY_FRAGMENT = 5, - Uri_PROPERTY_HOST = 6, - Uri_PROPERTY_PASSWORD = 7, - Uri_PROPERTY_PATH = 8, - Uri_PROPERTY_PATH_AND_QUERY = 9, - Uri_PROPERTY_QUERY = 10, - Uri_PROPERTY_RAW_URI = 11, - Uri_PROPERTY_SCHEME_NAME = 12, - Uri_PROPERTY_USER_INFO = 13, - Uri_PROPERTY_USER_NAME = 14, - Uri_PROPERTY_STRING_LAST = Uri_PROPERTY_USER_NAME, - Uri_PROPERTY_HOST_TYPE = 15, - Uri_PROPERTY_DWORD_START = Uri_PROPERTY_HOST_TYPE, - Uri_PROPERTY_PORT = 16, - Uri_PROPERTY_SCHEME = 17, - Uri_PROPERTY_ZONE = 18, - Uri_PROPERTY_DWORD_LAST = Uri_PROPERTY_ZONE - } Uri_PROPERTY; - -typedef /* [public][helpstring] */ -enum __MIDL_IUri_0002 - { - Uri_HOST_UNKNOWN = 0, - Uri_HOST_DNS = ( Uri_HOST_UNKNOWN + 1 ) , - Uri_HOST_IPV4 = ( Uri_HOST_DNS + 1 ) , - Uri_HOST_IPV6 = ( Uri_HOST_IPV4 + 1 ) , - Uri_HOST_IDN = ( Uri_HOST_IPV6 + 1 ) - } Uri_HOST_TYPE; - - -EXTERN_C const IID IID_IUri; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("A39EE748-6A27-4817-A6F2-13914BEF5890") - IUri : public IUnknown - { - public: - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPropertyBSTR( - /* [range][in] */ Uri_PROPERTY uriProp, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrProperty, - /* [in] */ DWORD dwFlags) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPropertyLength( - /* [range][in] */ Uri_PROPERTY uriProp, - /* [out] */ __RPC__out DWORD *pcchProperty, - /* [in] */ DWORD dwFlags) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPropertyDWORD( - /* [range][in] */ Uri_PROPERTY uriProp, - /* [out] */ __RPC__out DWORD *pdwProperty, - /* [in] */ DWORD dwFlags) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE HasProperty( - /* [range][in] */ Uri_PROPERTY uriProp, - /* [out] */ __RPC__out BOOL *pfHasProperty) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAbsoluteUri( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrAbsoluteUri) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAuthority( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrAuthority) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDisplayUri( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrDisplayString) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDomain( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrDomain) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetExtension( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrExtension) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFragment( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrFragment) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHost( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrHost) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPassword( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrPassword) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPath( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrPath) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPathAndQuery( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrPathAndQuery) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetQuery( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrQuery) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRawUri( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrRawUri) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSchemeName( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrSchemeName) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetUserInfo( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrUserInfo) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetUserName( - /* [out] */ __RPC__deref_out_opt BSTR *pbstrUserName) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHostType( - /* [out] */ __RPC__out DWORD *pdwHostType) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPort( - /* [out] */ __RPC__out DWORD *pdwPort) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetScheme( - /* [out] */ __RPC__out DWORD *pdwScheme) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetZone( - /* [out] */ __RPC__out DWORD *pdwZone) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetProperties( - /* [out] */ __RPC__out LPDWORD pdwFlags) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsEqual( - /* [in] */ __RPC__in_opt IUri *pUri, - /* [out] */ __RPC__out BOOL *pfEqual) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IUriVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IUri * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IUri * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IUri * This); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPropertyBSTR )( - __RPC__in IUri * This, - /* [range][in] */ Uri_PROPERTY uriProp, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrProperty, - /* [in] */ DWORD dwFlags); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPropertyLength )( - __RPC__in IUri * This, - /* [range][in] */ Uri_PROPERTY uriProp, - /* [out] */ __RPC__out DWORD *pcchProperty, - /* [in] */ DWORD dwFlags); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPropertyDWORD )( - __RPC__in IUri * This, - /* [range][in] */ Uri_PROPERTY uriProp, - /* [out] */ __RPC__out DWORD *pdwProperty, - /* [in] */ DWORD dwFlags); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *HasProperty )( - __RPC__in IUri * This, - /* [range][in] */ Uri_PROPERTY uriProp, - /* [out] */ __RPC__out BOOL *pfHasProperty); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAbsoluteUri )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrAbsoluteUri); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAuthority )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrAuthority); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDisplayUri )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrDisplayString); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDomain )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrDomain); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetExtension )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrExtension); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFragment )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrFragment); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHost )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrHost); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPassword )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrPassword); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPath )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrPath); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPathAndQuery )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrPathAndQuery); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetQuery )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrQuery); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRawUri )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrRawUri); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSchemeName )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrSchemeName); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetUserInfo )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrUserInfo); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetUserName )( - __RPC__in IUri * This, - /* [out] */ __RPC__deref_out_opt BSTR *pbstrUserName); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHostType )( - __RPC__in IUri * This, - /* [out] */ __RPC__out DWORD *pdwHostType); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPort )( - __RPC__in IUri * This, - /* [out] */ __RPC__out DWORD *pdwPort); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetScheme )( - __RPC__in IUri * This, - /* [out] */ __RPC__out DWORD *pdwScheme); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetZone )( - __RPC__in IUri * This, - /* [out] */ __RPC__out DWORD *pdwZone); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetProperties )( - __RPC__in IUri * This, - /* [out] */ __RPC__out LPDWORD pdwFlags); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsEqual )( - __RPC__in IUri * This, - /* [in] */ __RPC__in_opt IUri *pUri, - /* [out] */ __RPC__out BOOL *pfEqual); - - END_INTERFACE - } IUriVtbl; - - interface IUri - { - CONST_VTBL struct IUriVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IUri_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IUri_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IUri_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IUri_GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags) \ - ( (This)->lpVtbl -> GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags) ) - -#define IUri_GetPropertyLength(This,uriProp,pcchProperty,dwFlags) \ - ( (This)->lpVtbl -> GetPropertyLength(This,uriProp,pcchProperty,dwFlags) ) - -#define IUri_GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags) \ - ( (This)->lpVtbl -> GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags) ) - -#define IUri_HasProperty(This,uriProp,pfHasProperty) \ - ( (This)->lpVtbl -> HasProperty(This,uriProp,pfHasProperty) ) - -#define IUri_GetAbsoluteUri(This,pbstrAbsoluteUri) \ - ( (This)->lpVtbl -> GetAbsoluteUri(This,pbstrAbsoluteUri) ) - -#define IUri_GetAuthority(This,pbstrAuthority) \ - ( (This)->lpVtbl -> GetAuthority(This,pbstrAuthority) ) - -#define IUri_GetDisplayUri(This,pbstrDisplayString) \ - ( (This)->lpVtbl -> GetDisplayUri(This,pbstrDisplayString) ) - -#define IUri_GetDomain(This,pbstrDomain) \ - ( (This)->lpVtbl -> GetDomain(This,pbstrDomain) ) - -#define IUri_GetExtension(This,pbstrExtension) \ - ( (This)->lpVtbl -> GetExtension(This,pbstrExtension) ) - -#define IUri_GetFragment(This,pbstrFragment) \ - ( (This)->lpVtbl -> GetFragment(This,pbstrFragment) ) - -#define IUri_GetHost(This,pbstrHost) \ - ( (This)->lpVtbl -> GetHost(This,pbstrHost) ) - -#define IUri_GetPassword(This,pbstrPassword) \ - ( (This)->lpVtbl -> GetPassword(This,pbstrPassword) ) - -#define IUri_GetPath(This,pbstrPath) \ - ( (This)->lpVtbl -> GetPath(This,pbstrPath) ) - -#define IUri_GetPathAndQuery(This,pbstrPathAndQuery) \ - ( (This)->lpVtbl -> GetPathAndQuery(This,pbstrPathAndQuery) ) - -#define IUri_GetQuery(This,pbstrQuery) \ - ( (This)->lpVtbl -> GetQuery(This,pbstrQuery) ) - -#define IUri_GetRawUri(This,pbstrRawUri) \ - ( (This)->lpVtbl -> GetRawUri(This,pbstrRawUri) ) - -#define IUri_GetSchemeName(This,pbstrSchemeName) \ - ( (This)->lpVtbl -> GetSchemeName(This,pbstrSchemeName) ) - -#define IUri_GetUserInfo(This,pbstrUserInfo) \ - ( (This)->lpVtbl -> GetUserInfo(This,pbstrUserInfo) ) - -#define IUri_GetUserName(This,pbstrUserName) \ - ( (This)->lpVtbl -> GetUserName(This,pbstrUserName) ) - -#define IUri_GetHostType(This,pdwHostType) \ - ( (This)->lpVtbl -> GetHostType(This,pdwHostType) ) - -#define IUri_GetPort(This,pdwPort) \ - ( (This)->lpVtbl -> GetPort(This,pdwPort) ) - -#define IUri_GetScheme(This,pdwScheme) \ - ( (This)->lpVtbl -> GetScheme(This,pdwScheme) ) - -#define IUri_GetZone(This,pdwZone) \ - ( (This)->lpVtbl -> GetZone(This,pdwZone) ) - -#define IUri_GetProperties(This,pdwFlags) \ - ( (This)->lpVtbl -> GetProperties(This,pdwFlags) ) - -#define IUri_IsEqual(This,pUri,pfEqual) \ - ( (This)->lpVtbl -> IsEqual(This,pUri,pfEqual) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IUri_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0015 */ -/* [local] */ - -STDAPI CreateUri(_In_ LPCWSTR pwzURI, - _In_ DWORD dwFlags, - _Reserved_ DWORD_PTR dwReserved, // must be 0 - _Outptr_ IUri** ppURI); - -STDAPI CreateUriWithFragment( - _In_ LPCWSTR pwzURI, - _In_opt_ LPCWSTR pwzFragment, // can be NULL - _In_ DWORD dwFlags, - _Reserved_ DWORD_PTR dwReserved, // must be 0 - _Outptr_ IUri** ppURI); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -STDAPI CreateUriFromMultiByteString( - _In_ LPCSTR pszANSIInputUri, - DWORD dwEncodingFlags, // ORed set of Uri_ENCODING_ flags - DWORD dwCodePage, - DWORD dwCreateFlags, - _Reserved_ DWORD_PTR dwReserved, // must be 0 - _Outptr_ IUri** ppUri); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -//The following flags are used with IUri::GetProperties. -#define Uri_HAS_ABSOLUTE_URI (1 << Uri_PROPERTY_ABSOLUTE_URI) -#define Uri_HAS_AUTHORITY (1 << Uri_PROPERTY_AUTHORITY) -#define Uri_HAS_DISPLAY_URI (1 << Uri_PROPERTY_DISPLAY_URI) -#define Uri_HAS_DOMAIN (1 << Uri_PROPERTY_DOMAIN) -#define Uri_HAS_EXTENSION (1 << Uri_PROPERTY_EXTENSION) -#define Uri_HAS_FRAGMENT (1 << Uri_PROPERTY_FRAGMENT) -#define Uri_HAS_HOST (1 << Uri_PROPERTY_HOST) -#define Uri_HAS_PASSWORD (1 << Uri_PROPERTY_PASSWORD) -#define Uri_HAS_PATH (1 << Uri_PROPERTY_PATH) -#define Uri_HAS_QUERY (1 << Uri_PROPERTY_QUERY) -#define Uri_HAS_RAW_URI (1 << Uri_PROPERTY_RAW_URI) -#define Uri_HAS_SCHEME_NAME (1 << Uri_PROPERTY_SCHEME_NAME) -#define Uri_HAS_USER_NAME (1 << Uri_PROPERTY_USER_NAME) -#define Uri_HAS_PATH_AND_QUERY (1 << Uri_PROPERTY_PATH_AND_QUERY) -#define Uri_HAS_USER_INFO (1 << Uri_PROPERTY_USER_INFO) -#define Uri_HAS_HOST_TYPE (1 << Uri_PROPERTY_HOST_TYPE) -#define Uri_HAS_PORT (1 << Uri_PROPERTY_PORT) -#define Uri_HAS_SCHEME (1 << Uri_PROPERTY_SCHEME) -#define Uri_HAS_ZONE (1 << Uri_PROPERTY_ZONE) - -//The following public Uri_CREATE flags may be passed in -//through the dwFlags parameter of the CreateUri functions. -//Note that ALLOW_RELATIVE and ALLOW_IMPLICIT_WILDCARD_SCHEME are mutually exclusive and may not be passed together. -#define Uri_CREATE_ALLOW_RELATIVE 0x00000001 // When the scheme is unspecified and not implicit file, assume relative. -#define Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME 0x00000002 // When the scheme is unspecified and not implicit file, assume wildcard. -#define Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME 0x00000004 // When the scheme is unspecified and it starts with X: or \\ assume its a file scheme. -#define Uri_CREATE_NOFRAG 0x00000008 // If there's a query string don't look for a fragment -#define Uri_CREATE_NO_CANONICALIZE 0x00000010 // Do not canonicalize the scheme, host, authority, or path -#define Uri_CREATE_CANONICALIZE 0x00000100 // DEFAULT: Canonicalize the scheme, host, authority, and path -#define Uri_CREATE_FILE_USE_DOS_PATH 0x00000020 // Use DOS path compat mode for file URI creation -#define Uri_CREATE_DECODE_EXTRA_INFO 0x00000040 // Beta2 DEFAULT: Decode the contents of query and fragment, then re-encode reserved characters -#define Uri_CREATE_NO_DECODE_EXTRA_INFO 0x00000080 // Beta1 DEFAULT: Neither decode nor re-encode any part of the query or fragment -#define Uri_CREATE_CRACK_UNKNOWN_SCHEMES 0x00000200 // Beta2 DEFAULT: Heirarchical URIs with present and unknown schemes will be treated like heirarchical URIs -#define Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES 0x00000400 // Beta1 DEFAULT: Heirarchical URIs with present and unknown schemes will be treated like opaque URIs -#define Uri_CREATE_PRE_PROCESS_HTML_URI 0x00000800 // DEFAULT: Perform pre-processing on the URI to remove control characters and whitespace as if the URI comes from the raw href value of an HTML page. -#define Uri_CREATE_NO_PRE_PROCESS_HTML_URI 0x00001000 // Don't perform pre-processing to remove control characters and whitespace as appropriate. -#define Uri_CREATE_IE_SETTINGS 0x00002000 // Use IE registry settings for such things as whether or not to use IDN. -#define Uri_CREATE_NO_IE_SETTINGS 0x00004000 // DEFAULT: Don't use IE registry settings. -#define Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS 0x00008000 // Don't percent-encode characters that are forbidden by the RFC. -#define Uri_CREATE_NORMALIZE_INTL_CHARACTERS 0x00010000 // Percent encode all extended unicode charcters, then decode all percent encoded extended unicode characters (except those identified as dangerous) -#define Uri_CREATE_CANONICALIZE_ABSOLUTE 0x00020000 // Generate a fully UTF-8 encoded value for absoluteUri -//The following flags may be passed in through the dwFlags -//parameter of the IUri::GetPropertyBSTR or IUri::GetPropertyLength functions. -//The following flags apply only to the property Uri_PROPERTY_DISPLAY_URI: -#define Uri_DISPLAY_NO_FRAGMENT 0x00000001 // Exclude fragment from the DisplayUri, if one exists -#define Uri_PUNYCODE_IDN_HOST 0x00000002 // Show the hostname encoded as punycode inside the Host, Domain, or AbsoluteUri properties, if the Uri is IDN -#define Uri_DISPLAY_IDN_HOST 0x00000004 // Show the hostname encoded as punycode or Unicode as it would appear in the DisplayUri property. This applies to the Host, Domain, and AbsoluteUri properties. -#define Uri_DISPLAY_NO_PUNYCODE 0x00000008 // Show the hostname encoded as Unicode from the DisplayUri, if the Uri is IDN -// The following are Uri_ENCODING_ flags for use with the function CreateUriFromMultiByteString -#define Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 0x00000001 -#define Uri_ENCODING_USER_INFO_AND_PATH_IS_CP 0x00000002 -#define Uri_ENCODING_HOST_IS_IDN 0x00000004 -#define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 0x00000008 -#define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP 0x00000010 -#define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8 0x00000020 -#define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP 0x00000040 -#define Uri_ENCODING_RFC (Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 | Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 | Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8) - -//The following flags may be passed in through the dwUriBuilderFlags -//parameter of the IUriBuilder::CreateUri -#define UriBuilder_USE_ORIGINAL_FLAGS 0x00000001 // Use the create flags from the underlying IUri if they are available. - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion -#endif -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0015_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0015_v0_0_s_ifspec; - -#ifndef __IUriContainer_INTERFACE_DEFINED__ -#define __IUriContainer_INTERFACE_DEFINED__ - -/* interface IUriContainer */ -/* [unique][uuid][local][object] */ - - -EXTERN_C const IID IID_IUriContainer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a158a630-ed6f-45fb-b987-f68676f57752") - IUriContainer : public IUnknown - { - public: - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetIUri( - /* [out] */ IUri **ppIUri) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IUriContainerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IUriContainer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IUriContainer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IUriContainer * This); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetIUri )( - IUriContainer * This, - /* [out] */ IUri **ppIUri); - - END_INTERFACE - } IUriContainerVtbl; - - interface IUriContainer - { - CONST_VTBL struct IUriContainerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IUriContainer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IUriContainer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IUriContainer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IUriContainer_GetIUri(This,ppIUri) \ - ( (This)->lpVtbl -> GetIUri(This,ppIUri) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IUriContainer_INTERFACE_DEFINED__ */ - - -#ifndef __IUriBuilder_INTERFACE_DEFINED__ -#define __IUriBuilder_INTERFACE_DEFINED__ - -/* interface IUriBuilder */ -/* [unique][uuid][object][local][helpstring] */ - - -EXTERN_C const IID IID_IUriBuilder; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("4221B2E1-8955-46c0-BD5B-DE9897565DE7") - IUriBuilder : public IUnknown - { - public: - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateUriSimple( - /* [in] */ DWORD dwAllowEncodingPropertyMask, - /* [in] */ DWORD_PTR dwReserved, - /* [annotation][out] */ - _Outptr_ IUri **ppIUri) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateUri( - /* [in] */ DWORD dwCreateFlags, - /* [in] */ DWORD dwAllowEncodingPropertyMask, - /* [in] */ DWORD_PTR dwReserved, - /* [annotation][out] */ - _Outptr_ IUri **ppIUri) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateUriWithFlags( - /* [in] */ DWORD dwCreateFlags, - /* [in] */ DWORD dwUriBuilderFlags, - /* [in] */ DWORD dwAllowEncodingPropertyMask, - /* [in] */ DWORD_PTR dwReserved, - /* [annotation][out] */ - _Outptr_ IUri **ppIUri) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetIUri( - /* [annotation][out] */ - _Outptr_result_maybenull_ IUri **ppIUri) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetIUri( - /* [annotation][unique][in] */ - _In_opt_ IUri *pIUri) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFragment( - /* [annotation][out] */ - _Out_ DWORD *pcchFragment, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzFragment) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHost( - /* [annotation][out] */ - _Out_ DWORD *pcchHost, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzHost) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPassword( - /* [annotation][out] */ - _Out_ DWORD *pcchPassword, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzPassword) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPath( - /* [annotation][out] */ - _Out_ DWORD *pcchPath, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzPath) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPort( - /* [annotation][out] */ - _Out_ BOOL *pfHasPort, - /* [annotation][out] */ - _Out_ DWORD *pdwPort) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetQuery( - /* [annotation][out] */ - _Out_ DWORD *pcchQuery, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzQuery) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSchemeName( - /* [annotation][out] */ - _Out_ DWORD *pcchSchemeName, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzSchemeName) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetUserName( - /* [annotation][out] */ - _Out_ DWORD *pcchUserName, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzUserName) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetFragment( - /* [annotation][in] */ - _In_opt_ LPCWSTR pwzNewValue) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetHost( - /* [annotation][in] */ - _In_ LPCWSTR pwzNewValue) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetPassword( - /* [annotation][in] */ - _In_opt_ LPCWSTR pwzNewValue) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetPath( - /* [annotation][in] */ - _In_opt_ LPCWSTR pwzNewValue) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetPort( - /* [in] */ BOOL fHasPort, - /* [in] */ DWORD dwNewValue) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetQuery( - /* [annotation][in] */ - _In_opt_ LPCWSTR pwzNewValue) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSchemeName( - /* [annotation][in] */ - _In_ LPCWSTR pwzNewValue) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetUserName( - /* [annotation][in] */ - _In_opt_ LPCWSTR pwzNewValue) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveProperties( - /* [in] */ DWORD dwPropertyMask) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE HasBeenModified( - /* [annotation][out] */ - _Out_ BOOL *pfModified) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IUriBuilderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IUriBuilder * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IUriBuilder * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IUriBuilder * This); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateUriSimple )( - IUriBuilder * This, - /* [in] */ DWORD dwAllowEncodingPropertyMask, - /* [in] */ DWORD_PTR dwReserved, - /* [annotation][out] */ - _Outptr_ IUri **ppIUri); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateUri )( - IUriBuilder * This, - /* [in] */ DWORD dwCreateFlags, - /* [in] */ DWORD dwAllowEncodingPropertyMask, - /* [in] */ DWORD_PTR dwReserved, - /* [annotation][out] */ - _Outptr_ IUri **ppIUri); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateUriWithFlags )( - IUriBuilder * This, - /* [in] */ DWORD dwCreateFlags, - /* [in] */ DWORD dwUriBuilderFlags, - /* [in] */ DWORD dwAllowEncodingPropertyMask, - /* [in] */ DWORD_PTR dwReserved, - /* [annotation][out] */ - _Outptr_ IUri **ppIUri); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetIUri )( - IUriBuilder * This, - /* [annotation][out] */ - _Outptr_result_maybenull_ IUri **ppIUri); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetIUri )( - IUriBuilder * This, - /* [annotation][unique][in] */ - _In_opt_ IUri *pIUri); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFragment )( - IUriBuilder * This, - /* [annotation][out] */ - _Out_ DWORD *pcchFragment, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzFragment); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHost )( - IUriBuilder * This, - /* [annotation][out] */ - _Out_ DWORD *pcchHost, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzHost); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPassword )( - IUriBuilder * This, - /* [annotation][out] */ - _Out_ DWORD *pcchPassword, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzPassword); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPath )( - IUriBuilder * This, - /* [annotation][out] */ - _Out_ DWORD *pcchPath, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzPath); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPort )( - IUriBuilder * This, - /* [annotation][out] */ - _Out_ BOOL *pfHasPort, - /* [annotation][out] */ - _Out_ DWORD *pdwPort); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetQuery )( - IUriBuilder * This, - /* [annotation][out] */ - _Out_ DWORD *pcchQuery, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzQuery); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSchemeName )( - IUriBuilder * This, - /* [annotation][out] */ - _Out_ DWORD *pcchSchemeName, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzSchemeName); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetUserName )( - IUriBuilder * This, - /* [annotation][out] */ - _Out_ DWORD *pcchUserName, - /* [annotation][out] */ - _Outptr_result_maybenull_ LPCWSTR *ppwzUserName); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetFragment )( - IUriBuilder * This, - /* [annotation][in] */ - _In_opt_ LPCWSTR pwzNewValue); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetHost )( - IUriBuilder * This, - /* [annotation][in] */ - _In_ LPCWSTR pwzNewValue); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPassword )( - IUriBuilder * This, - /* [annotation][in] */ - _In_opt_ LPCWSTR pwzNewValue); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPath )( - IUriBuilder * This, - /* [annotation][in] */ - _In_opt_ LPCWSTR pwzNewValue); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPort )( - IUriBuilder * This, - /* [in] */ BOOL fHasPort, - /* [in] */ DWORD dwNewValue); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetQuery )( - IUriBuilder * This, - /* [annotation][in] */ - _In_opt_ LPCWSTR pwzNewValue); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSchemeName )( - IUriBuilder * This, - /* [annotation][in] */ - _In_ LPCWSTR pwzNewValue); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetUserName )( - IUriBuilder * This, - /* [annotation][in] */ - _In_opt_ LPCWSTR pwzNewValue); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveProperties )( - IUriBuilder * This, - /* [in] */ DWORD dwPropertyMask); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *HasBeenModified )( - IUriBuilder * This, - /* [annotation][out] */ - _Out_ BOOL *pfModified); - - END_INTERFACE - } IUriBuilderVtbl; - - interface IUriBuilder - { - CONST_VTBL struct IUriBuilderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IUriBuilder_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IUriBuilder_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IUriBuilder_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IUriBuilder_CreateUriSimple(This,dwAllowEncodingPropertyMask,dwReserved,ppIUri) \ - ( (This)->lpVtbl -> CreateUriSimple(This,dwAllowEncodingPropertyMask,dwReserved,ppIUri) ) - -#define IUriBuilder_CreateUri(This,dwCreateFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri) \ - ( (This)->lpVtbl -> CreateUri(This,dwCreateFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri) ) - -#define IUriBuilder_CreateUriWithFlags(This,dwCreateFlags,dwUriBuilderFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri) \ - ( (This)->lpVtbl -> CreateUriWithFlags(This,dwCreateFlags,dwUriBuilderFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri) ) - -#define IUriBuilder_GetIUri(This,ppIUri) \ - ( (This)->lpVtbl -> GetIUri(This,ppIUri) ) - -#define IUriBuilder_SetIUri(This,pIUri) \ - ( (This)->lpVtbl -> SetIUri(This,pIUri) ) - -#define IUriBuilder_GetFragment(This,pcchFragment,ppwzFragment) \ - ( (This)->lpVtbl -> GetFragment(This,pcchFragment,ppwzFragment) ) - -#define IUriBuilder_GetHost(This,pcchHost,ppwzHost) \ - ( (This)->lpVtbl -> GetHost(This,pcchHost,ppwzHost) ) - -#define IUriBuilder_GetPassword(This,pcchPassword,ppwzPassword) \ - ( (This)->lpVtbl -> GetPassword(This,pcchPassword,ppwzPassword) ) - -#define IUriBuilder_GetPath(This,pcchPath,ppwzPath) \ - ( (This)->lpVtbl -> GetPath(This,pcchPath,ppwzPath) ) - -#define IUriBuilder_GetPort(This,pfHasPort,pdwPort) \ - ( (This)->lpVtbl -> GetPort(This,pfHasPort,pdwPort) ) - -#define IUriBuilder_GetQuery(This,pcchQuery,ppwzQuery) \ - ( (This)->lpVtbl -> GetQuery(This,pcchQuery,ppwzQuery) ) - -#define IUriBuilder_GetSchemeName(This,pcchSchemeName,ppwzSchemeName) \ - ( (This)->lpVtbl -> GetSchemeName(This,pcchSchemeName,ppwzSchemeName) ) - -#define IUriBuilder_GetUserName(This,pcchUserName,ppwzUserName) \ - ( (This)->lpVtbl -> GetUserName(This,pcchUserName,ppwzUserName) ) - -#define IUriBuilder_SetFragment(This,pwzNewValue) \ - ( (This)->lpVtbl -> SetFragment(This,pwzNewValue) ) - -#define IUriBuilder_SetHost(This,pwzNewValue) \ - ( (This)->lpVtbl -> SetHost(This,pwzNewValue) ) - -#define IUriBuilder_SetPassword(This,pwzNewValue) \ - ( (This)->lpVtbl -> SetPassword(This,pwzNewValue) ) - -#define IUriBuilder_SetPath(This,pwzNewValue) \ - ( (This)->lpVtbl -> SetPath(This,pwzNewValue) ) - -#define IUriBuilder_SetPort(This,fHasPort,dwNewValue) \ - ( (This)->lpVtbl -> SetPort(This,fHasPort,dwNewValue) ) - -#define IUriBuilder_SetQuery(This,pwzNewValue) \ - ( (This)->lpVtbl -> SetQuery(This,pwzNewValue) ) - -#define IUriBuilder_SetSchemeName(This,pwzNewValue) \ - ( (This)->lpVtbl -> SetSchemeName(This,pwzNewValue) ) - -#define IUriBuilder_SetUserName(This,pwzNewValue) \ - ( (This)->lpVtbl -> SetUserName(This,pwzNewValue) ) - -#define IUriBuilder_RemoveProperties(This,dwPropertyMask) \ - ( (This)->lpVtbl -> RemoveProperties(This,dwPropertyMask) ) - -#define IUriBuilder_HasBeenModified(This,pfModified) \ - ( (This)->lpVtbl -> HasBeenModified(This,pfModified) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IUriBuilder_INTERFACE_DEFINED__ */ - - -#ifndef __IUriBuilderFactory_INTERFACE_DEFINED__ -#define __IUriBuilderFactory_INTERFACE_DEFINED__ - -/* interface IUriBuilderFactory */ -/* [unique][uuid][object][local][helpstring] */ - - -EXTERN_C const IID IID_IUriBuilderFactory; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("E982CE48-0B96-440c-BC37-0C869B27A29E") - IUriBuilderFactory : public IUnknown - { - public: - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateIUriBuilder( - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][in] */ - _In_ DWORD_PTR dwReserved, - /* [annotation][out] */ - _Out_ IUriBuilder **ppIUriBuilder) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateInitializedIUriBuilder( - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][in] */ - _In_ DWORD_PTR dwReserved, - /* [annotation][out] */ - _Out_ IUriBuilder **ppIUriBuilder) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IUriBuilderFactoryVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IUriBuilderFactory * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IUriBuilderFactory * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IUriBuilderFactory * This); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateIUriBuilder )( - IUriBuilderFactory * This, - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][in] */ - _In_ DWORD_PTR dwReserved, - /* [annotation][out] */ - _Out_ IUriBuilder **ppIUriBuilder); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateInitializedIUriBuilder )( - IUriBuilderFactory * This, - /* [annotation][in] */ - _In_ DWORD dwFlags, - /* [annotation][in] */ - _In_ DWORD_PTR dwReserved, - /* [annotation][out] */ - _Out_ IUriBuilder **ppIUriBuilder); - - END_INTERFACE - } IUriBuilderFactoryVtbl; - - interface IUriBuilderFactory - { - CONST_VTBL struct IUriBuilderFactoryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IUriBuilderFactory_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IUriBuilderFactory_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IUriBuilderFactory_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IUriBuilderFactory_CreateIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder) \ - ( (This)->lpVtbl -> CreateIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder) ) - -#define IUriBuilderFactory_CreateInitializedIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder) \ - ( (This)->lpVtbl -> CreateInitializedIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IUriBuilderFactory_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0018 */ -/* [local] */ - -STDAPI CreateIUriBuilder( - _In_opt_ IUri *pIUri, - _In_ DWORD dwFlags, - _In_ DWORD_PTR dwReserved, - _Outptr_ IUriBuilder **ppIUriBuilder - ); -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#ifndef _LPWININETINFO_DEFINED -#define _LPWININETINFO_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0018_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0018_v0_0_s_ifspec; - -#ifndef __IWinInetInfo_INTERFACE_DEFINED__ -#define __IWinInetInfo_INTERFACE_DEFINED__ - -/* interface IWinInetInfo */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IWinInetInfo *LPWININETINFO; - - -EXTERN_C const IID IID_IWinInetInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9d6-bafa-11ce-8c82-00aa004ba90b") - IWinInetInfo : public IUnknown - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE QueryOption( - /* [in] */ DWORD dwOption, - /* [size_is][out][in] */ LPVOID pBuffer, - /* [out][in] */ DWORD *pcbBuf) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IWinInetInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IWinInetInfo * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IWinInetInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IWinInetInfo * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *QueryOption )( - IWinInetInfo * This, - /* [in] */ DWORD dwOption, - /* [size_is][out][in] */ LPVOID pBuffer, - /* [out][in] */ DWORD *pcbBuf); - - END_INTERFACE - } IWinInetInfoVtbl; - - interface IWinInetInfo - { - CONST_VTBL struct IWinInetInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IWinInetInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IWinInetInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IWinInetInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IWinInetInfo_QueryOption(This,dwOption,pBuffer,pcbBuf) \ - ( (This)->lpVtbl -> QueryOption(This,dwOption,pBuffer,pcbBuf) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IWinInetInfo_RemoteQueryOption_Proxy( - __RPC__in IWinInetInfo * This, - /* [in] */ DWORD dwOption, - /* [size_is][out][in] */ __RPC__inout_ecount_full(*pcbBuf) BYTE *pBuffer, - /* [out][in] */ __RPC__inout DWORD *pcbBuf); - - -void __RPC_STUB IWinInetInfo_RemoteQueryOption_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IWinInetInfo_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0019 */ -/* [local] */ - -#endif -#define WININETINFO_OPTION_LOCK_HANDLE 65534 -#ifndef _LPHTTPSECURITY_DEFINED -#define _LPHTTPSECURITY_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0019_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0019_v0_0_s_ifspec; - -#ifndef __IHttpSecurity_INTERFACE_DEFINED__ -#define __IHttpSecurity_INTERFACE_DEFINED__ - -/* interface IHttpSecurity */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IHttpSecurity *LPHTTPSECURITY; - - -EXTERN_C const IID IID_IHttpSecurity; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9d7-bafa-11ce-8c82-00aa004ba90b") - IHttpSecurity : public IWindowForBindingUI - { - public: - virtual HRESULT STDMETHODCALLTYPE OnSecurityProblem( - /* [in] */ DWORD dwProblem) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IHttpSecurityVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IHttpSecurity * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IHttpSecurity * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IHttpSecurity * This); - - HRESULT ( STDMETHODCALLTYPE *GetWindow )( - IHttpSecurity * This, - /* [in] */ REFGUID rguidReason, - /* [out] */ HWND *phwnd); - - HRESULT ( STDMETHODCALLTYPE *OnSecurityProblem )( - IHttpSecurity * This, - /* [in] */ DWORD dwProblem); - - END_INTERFACE - } IHttpSecurityVtbl; - - interface IHttpSecurity - { - CONST_VTBL struct IHttpSecurityVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IHttpSecurity_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IHttpSecurity_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IHttpSecurity_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IHttpSecurity_GetWindow(This,rguidReason,phwnd) \ - ( (This)->lpVtbl -> GetWindow(This,rguidReason,phwnd) ) - - -#define IHttpSecurity_OnSecurityProblem(This,dwProblem) \ - ( (This)->lpVtbl -> OnSecurityProblem(This,dwProblem) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IHttpSecurity_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0020 */ -/* [local] */ - -#endif -#ifndef _LPWININETHTTPINFO_DEFINED -#define _LPWININETHTTPINFO_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0020_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0020_v0_0_s_ifspec; - -#ifndef __IWinInetHttpInfo_INTERFACE_DEFINED__ -#define __IWinInetHttpInfo_INTERFACE_DEFINED__ - -/* interface IWinInetHttpInfo */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IWinInetHttpInfo *LPWININETHTTPINFO; - - -EXTERN_C const IID IID_IWinInetHttpInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9d8-bafa-11ce-8c82-00aa004ba90b") - IWinInetHttpInfo : public IWinInetInfo - { - public: - virtual /* [local] */ HRESULT STDMETHODCALLTYPE QueryInfo( - /* [in] */ DWORD dwOption, - /* [size_is][out][in] */ LPVOID pBuffer, - /* [out][in] */ DWORD *pcbBuf, - /* [out][in] */ DWORD *pdwFlags, - /* [out][in] */ DWORD *pdwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IWinInetHttpInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IWinInetHttpInfo * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IWinInetHttpInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IWinInetHttpInfo * This); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *QueryOption )( - IWinInetHttpInfo * This, - /* [in] */ DWORD dwOption, - /* [size_is][out][in] */ LPVOID pBuffer, - /* [out][in] */ DWORD *pcbBuf); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *QueryInfo )( - IWinInetHttpInfo * This, - /* [in] */ DWORD dwOption, - /* [size_is][out][in] */ LPVOID pBuffer, - /* [out][in] */ DWORD *pcbBuf, - /* [out][in] */ DWORD *pdwFlags, - /* [out][in] */ DWORD *pdwReserved); - - END_INTERFACE - } IWinInetHttpInfoVtbl; - - interface IWinInetHttpInfo - { - CONST_VTBL struct IWinInetHttpInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IWinInetHttpInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IWinInetHttpInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IWinInetHttpInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IWinInetHttpInfo_QueryOption(This,dwOption,pBuffer,pcbBuf) \ - ( (This)->lpVtbl -> QueryOption(This,dwOption,pBuffer,pcbBuf) ) - - -#define IWinInetHttpInfo_QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved) \ - ( (This)->lpVtbl -> QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IWinInetHttpInfo_RemoteQueryInfo_Proxy( - __RPC__in IWinInetHttpInfo * This, - /* [in] */ DWORD dwOption, - /* [size_is][out][in] */ __RPC__inout_ecount_full(*pcbBuf) BYTE *pBuffer, - /* [out][in] */ __RPC__inout DWORD *pcbBuf, - /* [out][in] */ __RPC__inout DWORD *pdwFlags, - /* [out][in] */ __RPC__inout DWORD *pdwReserved); - - -void __RPC_STUB IWinInetHttpInfo_RemoteQueryInfo_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IWinInetHttpInfo_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0021 */ -/* [local] */ - -#endif -#ifndef _LPWININETHTTPTIMEOUTS_DEFINED -#define _LPWININETHTTPTIMEOUTS_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0021_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0021_v0_0_s_ifspec; - -#ifndef __IWinInetHttpTimeouts_INTERFACE_DEFINED__ -#define __IWinInetHttpTimeouts_INTERFACE_DEFINED__ - -/* interface IWinInetHttpTimeouts */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IWinInetHttpTimeouts; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F286FA56-C1FD-4270-8E67-B3EB790A81E8") - IWinInetHttpTimeouts : public IUnknown - { - public: - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRequestTimeouts( - /* [annotation][out] */ - _Out_ DWORD *pdwConnectTimeout, - /* [annotation][out] */ - _Out_ DWORD *pdwSendTimeout, - /* [annotation][out] */ - _Out_ DWORD *pdwReceiveTimeout) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IWinInetHttpTimeoutsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IWinInetHttpTimeouts * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IWinInetHttpTimeouts * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IWinInetHttpTimeouts * This); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRequestTimeouts )( - IWinInetHttpTimeouts * This, - /* [annotation][out] */ - _Out_ DWORD *pdwConnectTimeout, - /* [annotation][out] */ - _Out_ DWORD *pdwSendTimeout, - /* [annotation][out] */ - _Out_ DWORD *pdwReceiveTimeout); - - END_INTERFACE - } IWinInetHttpTimeoutsVtbl; - - interface IWinInetHttpTimeouts - { - CONST_VTBL struct IWinInetHttpTimeoutsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IWinInetHttpTimeouts_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IWinInetHttpTimeouts_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IWinInetHttpTimeouts_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IWinInetHttpTimeouts_GetRequestTimeouts(This,pdwConnectTimeout,pdwSendTimeout,pdwReceiveTimeout) \ - ( (This)->lpVtbl -> GetRequestTimeouts(This,pdwConnectTimeout,pdwSendTimeout,pdwReceiveTimeout) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IWinInetHttpTimeouts_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0022 */ -/* [local] */ - -#endif -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -#ifndef _LPWININETCACHEHINTS_DEFINED -#define _LPWININETCACHEHINTS_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0022_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0022_v0_0_s_ifspec; - -#ifndef __IWinInetCacheHints_INTERFACE_DEFINED__ -#define __IWinInetCacheHints_INTERFACE_DEFINED__ - -/* interface IWinInetCacheHints */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IWinInetCacheHints *LPWININETCACHEHINTS; - - -EXTERN_C const IID IID_IWinInetCacheHints; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DD1EC3B3-8391-4fdb-A9E6-347C3CAAA7DD") - IWinInetCacheHints : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetCacheExtension( - /* [in] */ LPCWSTR pwzExt, - /* [size_is][out][in] */ LPVOID pszCacheFile, - /* [out][in] */ DWORD *pcbCacheFile, - /* [out][in] */ DWORD *pdwWinInetError, - /* [out][in] */ DWORD *pdwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IWinInetCacheHintsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IWinInetCacheHints * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IWinInetCacheHints * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IWinInetCacheHints * This); - - HRESULT ( STDMETHODCALLTYPE *SetCacheExtension )( - IWinInetCacheHints * This, - /* [in] */ LPCWSTR pwzExt, - /* [size_is][out][in] */ LPVOID pszCacheFile, - /* [out][in] */ DWORD *pcbCacheFile, - /* [out][in] */ DWORD *pdwWinInetError, - /* [out][in] */ DWORD *pdwReserved); - - END_INTERFACE - } IWinInetCacheHintsVtbl; - - interface IWinInetCacheHints - { - CONST_VTBL struct IWinInetCacheHintsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IWinInetCacheHints_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IWinInetCacheHints_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IWinInetCacheHints_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IWinInetCacheHints_SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved) \ - ( (This)->lpVtbl -> SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IWinInetCacheHints_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0023 */ -/* [local] */ - -#endif -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) -#if (_WIN32_IE >= _WIN32_IE_IE70) -#ifndef _LPWININETCACHEHINTS2_DEFINED -#define _LPWININETCACHEHINTS2_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0023_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0023_v0_0_s_ifspec; - -#ifndef __IWinInetCacheHints2_INTERFACE_DEFINED__ -#define __IWinInetCacheHints2_INTERFACE_DEFINED__ - -/* interface IWinInetCacheHints2 */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IWinInetCacheHints2 *LPWININETCACHEHINTS2; - - -EXTERN_C const IID IID_IWinInetCacheHints2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7857AEAC-D31F-49bf-884E-DD46DF36780A") - IWinInetCacheHints2 : public IWinInetCacheHints - { - public: - virtual HRESULT STDMETHODCALLTYPE SetCacheExtension2( - /* [in] */ LPCWSTR pwzExt, - /* [annotation][size_is][out] */ - __RPC__out_ecount(*pcchCacheFile) WCHAR *pwzCacheFile, - /* [out][in] */ DWORD *pcchCacheFile, - /* [out] */ DWORD *pdwWinInetError, - /* [out] */ DWORD *pdwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IWinInetCacheHints2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IWinInetCacheHints2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IWinInetCacheHints2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IWinInetCacheHints2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetCacheExtension )( - IWinInetCacheHints2 * This, - /* [in] */ LPCWSTR pwzExt, - /* [size_is][out][in] */ LPVOID pszCacheFile, - /* [out][in] */ DWORD *pcbCacheFile, - /* [out][in] */ DWORD *pdwWinInetError, - /* [out][in] */ DWORD *pdwReserved); - - HRESULT ( STDMETHODCALLTYPE *SetCacheExtension2 )( - IWinInetCacheHints2 * This, - /* [in] */ LPCWSTR pwzExt, - /* [annotation][size_is][out] */ - __RPC__out_ecount(*pcchCacheFile) WCHAR *pwzCacheFile, - /* [out][in] */ DWORD *pcchCacheFile, - /* [out] */ DWORD *pdwWinInetError, - /* [out] */ DWORD *pdwReserved); - - END_INTERFACE - } IWinInetCacheHints2Vtbl; - - interface IWinInetCacheHints2 - { - CONST_VTBL struct IWinInetCacheHints2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IWinInetCacheHints2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IWinInetCacheHints2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IWinInetCacheHints2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IWinInetCacheHints2_SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved) \ - ( (This)->lpVtbl -> SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved) ) - - -#define IWinInetCacheHints2_SetCacheExtension2(This,pwzExt,pwzCacheFile,pcchCacheFile,pdwWinInetError,pdwReserved) \ - ( (This)->lpVtbl -> SetCacheExtension2(This,pwzExt,pwzCacheFile,pcchCacheFile,pdwWinInetError,pdwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IWinInetCacheHints2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0024 */ -/* [local] */ - -#endif -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -#define SID_IBindHost IID_IBindHost -#define SID_SBindHost IID_IBindHost -#ifndef _LPBINDHOST_DEFINED -#define _LPBINDHOST_DEFINED -EXTERN_C const GUID SID_BindHost; - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0024_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0024_v0_0_s_ifspec; - -#ifndef __IBindHost_INTERFACE_DEFINED__ -#define __IBindHost_INTERFACE_DEFINED__ - -/* interface IBindHost */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IBindHost *LPBINDHOST; - - -EXTERN_C const IID IID_IBindHost; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("fc4801a1-2ba9-11cf-a229-00aa003d7352") - IBindHost : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateMoniker( - /* [in] */ __RPC__in LPOLESTR szName, - /* [in] */ __RPC__in_opt IBindCtx *pBC, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmk, - /* [in] */ DWORD dwReserved) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE MonikerBindToStorage( - /* [in] */ IMoniker *pMk, - /* [in] */ IBindCtx *pBC, - /* [in] */ IBindStatusCallback *pBSC, - /* [in] */ REFIID riid, - /* [out] */ void **ppvObj) = 0; - - virtual /* [local] */ HRESULT STDMETHODCALLTYPE MonikerBindToObject( - /* [in] */ IMoniker *pMk, - /* [in] */ IBindCtx *pBC, - /* [in] */ IBindStatusCallback *pBSC, - /* [in] */ REFIID riid, - /* [out] */ void **ppvObj) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IBindHostVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IBindHost * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IBindHost * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IBindHost * This); - - HRESULT ( STDMETHODCALLTYPE *CreateMoniker )( - __RPC__in IBindHost * This, - /* [in] */ __RPC__in LPOLESTR szName, - /* [in] */ __RPC__in_opt IBindCtx *pBC, - /* [out] */ __RPC__deref_out_opt IMoniker **ppmk, - /* [in] */ DWORD dwReserved); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *MonikerBindToStorage )( - IBindHost * This, - /* [in] */ IMoniker *pMk, - /* [in] */ IBindCtx *pBC, - /* [in] */ IBindStatusCallback *pBSC, - /* [in] */ REFIID riid, - /* [out] */ void **ppvObj); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *MonikerBindToObject )( - IBindHost * This, - /* [in] */ IMoniker *pMk, - /* [in] */ IBindCtx *pBC, - /* [in] */ IBindStatusCallback *pBSC, - /* [in] */ REFIID riid, - /* [out] */ void **ppvObj); - - END_INTERFACE - } IBindHostVtbl; - - interface IBindHost - { - CONST_VTBL struct IBindHostVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IBindHost_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IBindHost_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IBindHost_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IBindHost_CreateMoniker(This,szName,pBC,ppmk,dwReserved) \ - ( (This)->lpVtbl -> CreateMoniker(This,szName,pBC,ppmk,dwReserved) ) - -#define IBindHost_MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj) \ - ( (This)->lpVtbl -> MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj) ) - -#define IBindHost_MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj) \ - ( (This)->lpVtbl -> MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindHost_RemoteMonikerBindToStorage_Proxy( - __RPC__in IBindHost * This, - /* [unique][in] */ __RPC__in_opt IMoniker *pMk, - /* [unique][in] */ __RPC__in_opt IBindCtx *pBC, - /* [unique][in] */ __RPC__in_opt IBindStatusCallback *pBSC, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObj); - - -void __RPC_STUB IBindHost_RemoteMonikerBindToStorage_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindHost_RemoteMonikerBindToObject_Proxy( - __RPC__in IBindHost * This, - /* [unique][in] */ __RPC__in_opt IMoniker *pMk, - /* [unique][in] */ __RPC__in_opt IBindCtx *pBC, - /* [unique][in] */ __RPC__in_opt IBindStatusCallback *pBSC, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObj); - - -void __RPC_STUB IBindHost_RemoteMonikerBindToObject_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IBindHost_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0025 */ -/* [local] */ - -#endif - -// These are for backwards compatibility with previous URLMON versions -// Flags for the UrlDownloadToCacheFile -#define URLOSTRM_USECACHEDCOPY_ONLY 0x1 // Only get from cache -#define URLOSTRM_USECACHEDCOPY 0x2 // Get from cache if available else download -#define URLOSTRM_GETNEWESTVERSION 0x3 // Get new version only. But put it in cache too - - -struct IBindStatusCallback; -STDAPI HlinkSimpleNavigateToString( - _In_opt_ LPCWSTR szTarget, // required - target document - null if local jump w/in doc - _In_opt_ LPCWSTR szLocation, // optional, for navigation into middle of a doc - _In_opt_ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets - _In_ IUnknown *pUnk, // required - we'll search this for other necessary interfaces - _In_opt_ IBindCtx *pbc, // optional. caller may register an IBSC in this - _In_opt_ IBindStatusCallback *, - /* [in] */ DWORD grfHLNF, // flags - /* [in] */ DWORD dwReserved // for future use, must be NULL -); - -STDAPI HlinkSimpleNavigateToMoniker( - _In_opt_ IMoniker *pmkTarget, // required - target document - (may be null - _In_opt_ LPCWSTR szLocation, // optional, for navigation into middle of a doc - _In_opt_ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets - _In_opt_ IUnknown *pUnk, // required - we'll search this for other necessary interfaces - _In_opt_ IBindCtx *pbc, // optional. caller may register an IBSC in this - _In_opt_ IBindStatusCallback *, - /* [in] */ DWORD grfHLNF, // flags - /* [in] */ DWORD dwReserved // for future use, must be NULL -); - -STDAPI URLOpenStreamA(_In_opt_ LPUNKNOWN, _In_ LPCSTR,DWORD, _In_opt_ LPBINDSTATUSCALLBACK); -STDAPI URLOpenStreamW(_In_opt_ LPUNKNOWN, _In_ LPCWSTR,DWORD,_In_opt_ LPBINDSTATUSCALLBACK); -STDAPI URLOpenPullStreamA(_In_opt_ LPUNKNOWN, _In_ LPCSTR,DWORD, _In_opt_ LPBINDSTATUSCALLBACK); -STDAPI URLOpenPullStreamW(_In_opt_ LPUNKNOWN,_In_ LPCWSTR,DWORD, _In_opt_ LPBINDSTATUSCALLBACK); -STDAPI URLDownloadToFileA(_In_opt_ LPUNKNOWN, _In_ LPCSTR, _In_opt_ LPCSTR,DWORD, _In_opt_ LPBINDSTATUSCALLBACK); -STDAPI URLDownloadToFileW(_In_opt_ LPUNKNOWN, _In_ LPCWSTR,_In_opt_ LPCWSTR,DWORD, _In_opt_ LPBINDSTATUSCALLBACK); -STDAPI URLDownloadToCacheFileA(_In_opt_ LPUNKNOWN, _In_ LPCSTR, _Out_writes_(cchFileName) LPSTR, DWORD cchFileName, DWORD, _In_opt_ LPBINDSTATUSCALLBACK); -STDAPI URLDownloadToCacheFileW(_In_opt_ LPUNKNOWN, _In_ LPCWSTR, _Out_writes_(cchFileName) LPWSTR, DWORD cchFileName, DWORD, _In_opt_ LPBINDSTATUSCALLBACK); -STDAPI URLOpenBlockingStreamA(_In_opt_ LPUNKNOWN, _In_ LPCSTR, _Outptr_ LPSTREAM*,DWORD, _In_opt_ LPBINDSTATUSCALLBACK); -STDAPI URLOpenBlockingStreamW(_In_opt_ LPUNKNOWN, _In_ LPCWSTR, _Outptr_ LPSTREAM*,DWORD, _In_opt_ LPBINDSTATUSCALLBACK); - -#ifdef UNICODE -#define URLOpenStream URLOpenStreamW -#define URLOpenPullStream URLOpenPullStreamW -#define URLDownloadToFile URLDownloadToFileW -#define URLDownloadToCacheFile URLDownloadToCacheFileW -#define URLOpenBlockingStream URLOpenBlockingStreamW -#else -#define URLOpenStream URLOpenStreamA -#define URLOpenPullStream URLOpenPullStreamA -#define URLDownloadToFile URLDownloadToFileA -#define URLDownloadToCacheFile URLDownloadToCacheFileA -#define URLOpenBlockingStream URLOpenBlockingStreamA -#endif // !UNICODE - - -STDAPI HlinkGoBack(_In_ IUnknown *pUnk); -STDAPI HlinkGoForward(_In_ IUnknown *pUnk); -STDAPI HlinkNavigateString(_In_opt_ IUnknown *pUnk, _In_opt_ LPCWSTR szTarget); -STDAPI HlinkNavigateMoniker(_In_opt_ IUnknown *pUnk, _In_opt_ IMoniker *pmkTarget); - -#ifndef _URLMON_NO_ASYNC_PLUGABLE_PROTOCOLS_ - - - - - - - - - - -#ifndef _LPIINTERNET -#define _LPIINTERNET - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0025_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0025_v0_0_s_ifspec; - -#ifndef __IInternet_INTERFACE_DEFINED__ -#define __IInternet_INTERFACE_DEFINED__ - -/* interface IInternet */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInternet *LPIINTERNET; - - -EXTERN_C const IID IID_IInternet; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9e0-baf9-11ce-8c82-00aa004ba90b") - IInternet : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct IInternetVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternet * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternet * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternet * This); - - END_INTERFACE - } IInternetVtbl; - - interface IInternet - { - CONST_VTBL struct IInternetVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternet_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternet_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternet_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternet_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0026 */ -/* [local] */ - -#endif -#ifndef _LPIINTERNETBINDINFO -#define _LPIINTERNETBINDINFO - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0026_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0026_v0_0_s_ifspec; - -#ifndef __IInternetBindInfo_INTERFACE_DEFINED__ -#define __IInternetBindInfo_INTERFACE_DEFINED__ - -/* interface IInternetBindInfo */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInternetBindInfo *LPIINTERNETBINDINFO; - -typedef -enum tagBINDSTRING - { - BINDSTRING_HEADERS = 1, - BINDSTRING_ACCEPT_MIMES = ( BINDSTRING_HEADERS + 1 ) , - BINDSTRING_EXTRA_URL = ( BINDSTRING_ACCEPT_MIMES + 1 ) , - BINDSTRING_LANGUAGE = ( BINDSTRING_EXTRA_URL + 1 ) , - BINDSTRING_USERNAME = ( BINDSTRING_LANGUAGE + 1 ) , - BINDSTRING_PASSWORD = ( BINDSTRING_USERNAME + 1 ) , - BINDSTRING_UA_PIXELS = ( BINDSTRING_PASSWORD + 1 ) , - BINDSTRING_UA_COLOR = ( BINDSTRING_UA_PIXELS + 1 ) , - BINDSTRING_OS = ( BINDSTRING_UA_COLOR + 1 ) , - BINDSTRING_USER_AGENT = ( BINDSTRING_OS + 1 ) , - BINDSTRING_ACCEPT_ENCODINGS = ( BINDSTRING_USER_AGENT + 1 ) , - BINDSTRING_POST_COOKIE = ( BINDSTRING_ACCEPT_ENCODINGS + 1 ) , - BINDSTRING_POST_DATA_MIME = ( BINDSTRING_POST_COOKIE + 1 ) , - BINDSTRING_URL = ( BINDSTRING_POST_DATA_MIME + 1 ) , - BINDSTRING_IID = ( BINDSTRING_URL + 1 ) , - BINDSTRING_FLAG_BIND_TO_OBJECT = ( BINDSTRING_IID + 1 ) , - BINDSTRING_PTR_BIND_CONTEXT = ( BINDSTRING_FLAG_BIND_TO_OBJECT + 1 ) , - BINDSTRING_XDR_ORIGIN = ( BINDSTRING_PTR_BIND_CONTEXT + 1 ) , - BINDSTRING_DOWNLOADPATH = ( BINDSTRING_XDR_ORIGIN + 1 ) , - BINDSTRING_ROOTDOC_URL = ( BINDSTRING_DOWNLOADPATH + 1 ) , - BINDSTRING_INITIAL_FILENAME = ( BINDSTRING_ROOTDOC_URL + 1 ) , - BINDSTRING_PROXY_USERNAME = ( BINDSTRING_INITIAL_FILENAME + 1 ) , - BINDSTRING_PROXY_PASSWORD = ( BINDSTRING_PROXY_USERNAME + 1 ) , - BINDSTRING_ENTERPRISE_ID = ( BINDSTRING_PROXY_PASSWORD + 1 ) , - BINDSTRING_DOC_URL = ( BINDSTRING_ENTERPRISE_ID + 1 ) , - BINDSTRING_SAMESITE_COOKIE_LEVEL = ( BINDSTRING_DOC_URL + 1 ) - } BINDSTRING; - - -EXTERN_C const IID IID_IInternetBindInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9e1-baf9-11ce-8c82-00aa004ba90b") - IInternetBindInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetBindInfo( - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBindString( - /* [in] */ ULONG ulStringType, - /* [annotation][out][in] */ - __RPC__out LPOLESTR *ppwzStr, - /* [in] */ ULONG cEl, - /* [out][in] */ ULONG *pcElFetched) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetBindInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetBindInfo * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetBindInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetBindInfo * This); - - HRESULT ( STDMETHODCALLTYPE *GetBindInfo )( - IInternetBindInfo * This, - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo); - - HRESULT ( STDMETHODCALLTYPE *GetBindString )( - IInternetBindInfo * This, - /* [in] */ ULONG ulStringType, - /* [annotation][out][in] */ - __RPC__out LPOLESTR *ppwzStr, - /* [in] */ ULONG cEl, - /* [out][in] */ ULONG *pcElFetched); - - END_INTERFACE - } IInternetBindInfoVtbl; - - interface IInternetBindInfo - { - CONST_VTBL struct IInternetBindInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetBindInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetBindInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetBindInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetBindInfo_GetBindInfo(This,grfBINDF,pbindinfo) \ - ( (This)->lpVtbl -> GetBindInfo(This,grfBINDF,pbindinfo) ) - -#define IInternetBindInfo_GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched) \ - ( (This)->lpVtbl -> GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetBindInfo_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0027 */ -/* [local] */ - -#endif -#ifndef _LPIINTERNETBINDINFOEX -#define _LPIINTERNETBINDINFOEX - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0027_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0027_v0_0_s_ifspec; - -#ifndef __IInternetBindInfoEx_INTERFACE_DEFINED__ -#define __IInternetBindInfoEx_INTERFACE_DEFINED__ - -/* interface IInternetBindInfoEx */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInternetBindInfoEx *LPIINTERNETBINDINFOEX; - - -EXTERN_C const IID IID_IInternetBindInfoEx; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a3e015b7-a82c-4dcd-a150-569aeeed36ab") - IInternetBindInfoEx : public IInternetBindInfo - { - public: - virtual HRESULT STDMETHODCALLTYPE GetBindInfoEx( - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo, - /* [out] */ DWORD *grfBINDF2, - /* [out] */ DWORD *pdwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetBindInfoExVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetBindInfoEx * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetBindInfoEx * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetBindInfoEx * This); - - HRESULT ( STDMETHODCALLTYPE *GetBindInfo )( - IInternetBindInfoEx * This, - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo); - - HRESULT ( STDMETHODCALLTYPE *GetBindString )( - IInternetBindInfoEx * This, - /* [in] */ ULONG ulStringType, - /* [annotation][out][in] */ - __RPC__out LPOLESTR *ppwzStr, - /* [in] */ ULONG cEl, - /* [out][in] */ ULONG *pcElFetched); - - HRESULT ( STDMETHODCALLTYPE *GetBindInfoEx )( - IInternetBindInfoEx * This, - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo, - /* [out] */ DWORD *grfBINDF2, - /* [out] */ DWORD *pdwReserved); - - END_INTERFACE - } IInternetBindInfoExVtbl; - - interface IInternetBindInfoEx - { - CONST_VTBL struct IInternetBindInfoExVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetBindInfoEx_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetBindInfoEx_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetBindInfoEx_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetBindInfoEx_GetBindInfo(This,grfBINDF,pbindinfo) \ - ( (This)->lpVtbl -> GetBindInfo(This,grfBINDF,pbindinfo) ) - -#define IInternetBindInfoEx_GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched) \ - ( (This)->lpVtbl -> GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched) ) - - -#define IInternetBindInfoEx_GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved) \ - ( (This)->lpVtbl -> GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetBindInfoEx_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0028 */ -/* [local] */ - -#endif -#ifndef _LPIINTERNETPROTOCOLROOT_DEFINED -#define _LPIINTERNETPROTOCOLROOT_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0028_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0028_v0_0_s_ifspec; - -#ifndef __IInternetProtocolRoot_INTERFACE_DEFINED__ -#define __IInternetProtocolRoot_INTERFACE_DEFINED__ - -/* interface IInternetProtocolRoot */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInternetProtocolRoot *LPIINTERNETPROTOCOLROOT; - -typedef -enum _tagPI_FLAGS - { - PI_PARSE_URL = 0x1, - PI_FILTER_MODE = 0x2, - PI_FORCE_ASYNC = 0x4, - PI_USE_WORKERTHREAD = 0x8, - PI_MIMEVERIFICATION = 0x10, - PI_CLSIDLOOKUP = 0x20, - PI_DATAPROGRESS = 0x40, - PI_SYNCHRONOUS = 0x80, - PI_APARTMENTTHREADED = 0x100, - PI_CLASSINSTALL = 0x200, - PI_PASSONBINDCTX = 0x2000, - PI_NOMIMEHANDLER = 0x8000, - PI_LOADAPPDIRECT = 0x4000, - PD_FORCE_SWITCH = 0x10000, - PI_PREFERDEFAULTHANDLER = 0x20000 - } PI_FLAGS; - -typedef struct _tagPROTOCOLDATA - { - DWORD grfFlags; - DWORD dwState; - LPVOID pData; - ULONG cbData; - } PROTOCOLDATA; - -typedef struct _tagStartParam - { - IID iid; - IBindCtx *pIBindCtx; - IUnknown *pItf; - } StartParam; - - -EXTERN_C const IID IID_IInternetProtocolRoot; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9e3-baf9-11ce-8c82-00aa004ba90b") - IInternetProtocolRoot : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Start( - /* [in] */ LPCWSTR szUrl, - /* [in] */ IInternetProtocolSink *pOIProtSink, - /* [in] */ IInternetBindInfo *pOIBindInfo, - /* [in] */ DWORD grfPI, - /* [in] */ HANDLE_PTR dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE Continue( - /* [in] */ PROTOCOLDATA *pProtocolData) = 0; - - virtual HRESULT STDMETHODCALLTYPE Abort( - /* [in] */ HRESULT hrReason, - /* [in] */ DWORD dwOptions) = 0; - - virtual HRESULT STDMETHODCALLTYPE Terminate( - /* [in] */ DWORD dwOptions) = 0; - - virtual HRESULT STDMETHODCALLTYPE Suspend( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetProtocolRootVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetProtocolRoot * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetProtocolRoot * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetProtocolRoot * This); - - HRESULT ( STDMETHODCALLTYPE *Start )( - IInternetProtocolRoot * This, - /* [in] */ LPCWSTR szUrl, - /* [in] */ IInternetProtocolSink *pOIProtSink, - /* [in] */ IInternetBindInfo *pOIBindInfo, - /* [in] */ DWORD grfPI, - /* [in] */ HANDLE_PTR dwReserved); - - HRESULT ( STDMETHODCALLTYPE *Continue )( - IInternetProtocolRoot * This, - /* [in] */ PROTOCOLDATA *pProtocolData); - - HRESULT ( STDMETHODCALLTYPE *Abort )( - IInternetProtocolRoot * This, - /* [in] */ HRESULT hrReason, - /* [in] */ DWORD dwOptions); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( - IInternetProtocolRoot * This, - /* [in] */ DWORD dwOptions); - - HRESULT ( STDMETHODCALLTYPE *Suspend )( - IInternetProtocolRoot * This); - - HRESULT ( STDMETHODCALLTYPE *Resume )( - IInternetProtocolRoot * This); - - END_INTERFACE - } IInternetProtocolRootVtbl; - - interface IInternetProtocolRoot - { - CONST_VTBL struct IInternetProtocolRootVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetProtocolRoot_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetProtocolRoot_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetProtocolRoot_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetProtocolRoot_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) \ - ( (This)->lpVtbl -> Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) ) - -#define IInternetProtocolRoot_Continue(This,pProtocolData) \ - ( (This)->lpVtbl -> Continue(This,pProtocolData) ) - -#define IInternetProtocolRoot_Abort(This,hrReason,dwOptions) \ - ( (This)->lpVtbl -> Abort(This,hrReason,dwOptions) ) - -#define IInternetProtocolRoot_Terminate(This,dwOptions) \ - ( (This)->lpVtbl -> Terminate(This,dwOptions) ) - -#define IInternetProtocolRoot_Suspend(This) \ - ( (This)->lpVtbl -> Suspend(This) ) - -#define IInternetProtocolRoot_Resume(This) \ - ( (This)->lpVtbl -> Resume(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetProtocolRoot_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0029 */ -/* [local] */ - -#endif -#ifndef _LPIINTERNETPROTOCOL_DEFINED -#define _LPIINTERNETPROTOCOL_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0029_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0029_v0_0_s_ifspec; - -#ifndef __IInternetProtocol_INTERFACE_DEFINED__ -#define __IInternetProtocol_INTERFACE_DEFINED__ - -/* interface IInternetProtocol */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInternetProtocol *LPIINTERNETPROTOCOL; - - -EXTERN_C const IID IID_IInternetProtocol; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9e4-baf9-11ce-8c82-00aa004ba90b") - IInternetProtocol : public IInternetProtocolRoot - { - public: - virtual HRESULT STDMETHODCALLTYPE Read( - /* [length_is][size_is][out][in] */ void *pv, - /* [in] */ ULONG cb, - /* [out] */ ULONG *pcbRead) = 0; - - virtual HRESULT STDMETHODCALLTYPE Seek( - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [out] */ ULARGE_INTEGER *plibNewPosition) = 0; - - virtual HRESULT STDMETHODCALLTYPE LockRequest( - /* [in] */ DWORD dwOptions) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnlockRequest( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetProtocolVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetProtocol * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetProtocol * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetProtocol * This); - - HRESULT ( STDMETHODCALLTYPE *Start )( - IInternetProtocol * This, - /* [in] */ LPCWSTR szUrl, - /* [in] */ IInternetProtocolSink *pOIProtSink, - /* [in] */ IInternetBindInfo *pOIBindInfo, - /* [in] */ DWORD grfPI, - /* [in] */ HANDLE_PTR dwReserved); - - HRESULT ( STDMETHODCALLTYPE *Continue )( - IInternetProtocol * This, - /* [in] */ PROTOCOLDATA *pProtocolData); - - HRESULT ( STDMETHODCALLTYPE *Abort )( - IInternetProtocol * This, - /* [in] */ HRESULT hrReason, - /* [in] */ DWORD dwOptions); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( - IInternetProtocol * This, - /* [in] */ DWORD dwOptions); - - HRESULT ( STDMETHODCALLTYPE *Suspend )( - IInternetProtocol * This); - - HRESULT ( STDMETHODCALLTYPE *Resume )( - IInternetProtocol * This); - - HRESULT ( STDMETHODCALLTYPE *Read )( - IInternetProtocol * This, - /* [length_is][size_is][out][in] */ void *pv, - /* [in] */ ULONG cb, - /* [out] */ ULONG *pcbRead); - - HRESULT ( STDMETHODCALLTYPE *Seek )( - IInternetProtocol * This, - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [out] */ ULARGE_INTEGER *plibNewPosition); - - HRESULT ( STDMETHODCALLTYPE *LockRequest )( - IInternetProtocol * This, - /* [in] */ DWORD dwOptions); - - HRESULT ( STDMETHODCALLTYPE *UnlockRequest )( - IInternetProtocol * This); - - END_INTERFACE - } IInternetProtocolVtbl; - - interface IInternetProtocol - { - CONST_VTBL struct IInternetProtocolVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetProtocol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetProtocol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetProtocol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetProtocol_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) \ - ( (This)->lpVtbl -> Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) ) - -#define IInternetProtocol_Continue(This,pProtocolData) \ - ( (This)->lpVtbl -> Continue(This,pProtocolData) ) - -#define IInternetProtocol_Abort(This,hrReason,dwOptions) \ - ( (This)->lpVtbl -> Abort(This,hrReason,dwOptions) ) - -#define IInternetProtocol_Terminate(This,dwOptions) \ - ( (This)->lpVtbl -> Terminate(This,dwOptions) ) - -#define IInternetProtocol_Suspend(This) \ - ( (This)->lpVtbl -> Suspend(This) ) - -#define IInternetProtocol_Resume(This) \ - ( (This)->lpVtbl -> Resume(This) ) - - -#define IInternetProtocol_Read(This,pv,cb,pcbRead) \ - ( (This)->lpVtbl -> Read(This,pv,cb,pcbRead) ) - -#define IInternetProtocol_Seek(This,dlibMove,dwOrigin,plibNewPosition) \ - ( (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition) ) - -#define IInternetProtocol_LockRequest(This,dwOptions) \ - ( (This)->lpVtbl -> LockRequest(This,dwOptions) ) - -#define IInternetProtocol_UnlockRequest(This) \ - ( (This)->lpVtbl -> UnlockRequest(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetProtocol_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0030 */ -/* [local] */ - -#endif -#if (_WIN32_IE >= _WIN32_IE_IE70) -#ifndef _LPIINTERNETPROTOCOLEX_DEFINED -#define _LPIINTERNETPROTOCOLEX_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0030_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0030_v0_0_s_ifspec; - -#ifndef __IInternetProtocolEx_INTERFACE_DEFINED__ -#define __IInternetProtocolEx_INTERFACE_DEFINED__ - -/* interface IInternetProtocolEx */ -/* [unique][uuid][object][local] */ - - -EXTERN_C const IID IID_IInternetProtocolEx; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C7A98E66-1010-492c-A1C8-C809E1F75905") - IInternetProtocolEx : public IInternetProtocol - { - public: - virtual HRESULT STDMETHODCALLTYPE StartEx( - /* [in] */ IUri *pUri, - /* [in] */ IInternetProtocolSink *pOIProtSink, - /* [in] */ IInternetBindInfo *pOIBindInfo, - /* [in] */ DWORD grfPI, - /* [in] */ HANDLE_PTR dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetProtocolExVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetProtocolEx * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetProtocolEx * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetProtocolEx * This); - - HRESULT ( STDMETHODCALLTYPE *Start )( - IInternetProtocolEx * This, - /* [in] */ LPCWSTR szUrl, - /* [in] */ IInternetProtocolSink *pOIProtSink, - /* [in] */ IInternetBindInfo *pOIBindInfo, - /* [in] */ DWORD grfPI, - /* [in] */ HANDLE_PTR dwReserved); - - HRESULT ( STDMETHODCALLTYPE *Continue )( - IInternetProtocolEx * This, - /* [in] */ PROTOCOLDATA *pProtocolData); - - HRESULT ( STDMETHODCALLTYPE *Abort )( - IInternetProtocolEx * This, - /* [in] */ HRESULT hrReason, - /* [in] */ DWORD dwOptions); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( - IInternetProtocolEx * This, - /* [in] */ DWORD dwOptions); - - HRESULT ( STDMETHODCALLTYPE *Suspend )( - IInternetProtocolEx * This); - - HRESULT ( STDMETHODCALLTYPE *Resume )( - IInternetProtocolEx * This); - - HRESULT ( STDMETHODCALLTYPE *Read )( - IInternetProtocolEx * This, - /* [length_is][size_is][out][in] */ void *pv, - /* [in] */ ULONG cb, - /* [out] */ ULONG *pcbRead); - - HRESULT ( STDMETHODCALLTYPE *Seek )( - IInternetProtocolEx * This, - /* [in] */ LARGE_INTEGER dlibMove, - /* [in] */ DWORD dwOrigin, - /* [out] */ ULARGE_INTEGER *plibNewPosition); - - HRESULT ( STDMETHODCALLTYPE *LockRequest )( - IInternetProtocolEx * This, - /* [in] */ DWORD dwOptions); - - HRESULT ( STDMETHODCALLTYPE *UnlockRequest )( - IInternetProtocolEx * This); - - HRESULT ( STDMETHODCALLTYPE *StartEx )( - IInternetProtocolEx * This, - /* [in] */ IUri *pUri, - /* [in] */ IInternetProtocolSink *pOIProtSink, - /* [in] */ IInternetBindInfo *pOIBindInfo, - /* [in] */ DWORD grfPI, - /* [in] */ HANDLE_PTR dwReserved); - - END_INTERFACE - } IInternetProtocolExVtbl; - - interface IInternetProtocolEx - { - CONST_VTBL struct IInternetProtocolExVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetProtocolEx_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetProtocolEx_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetProtocolEx_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetProtocolEx_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) \ - ( (This)->lpVtbl -> Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) ) - -#define IInternetProtocolEx_Continue(This,pProtocolData) \ - ( (This)->lpVtbl -> Continue(This,pProtocolData) ) - -#define IInternetProtocolEx_Abort(This,hrReason,dwOptions) \ - ( (This)->lpVtbl -> Abort(This,hrReason,dwOptions) ) - -#define IInternetProtocolEx_Terminate(This,dwOptions) \ - ( (This)->lpVtbl -> Terminate(This,dwOptions) ) - -#define IInternetProtocolEx_Suspend(This) \ - ( (This)->lpVtbl -> Suspend(This) ) - -#define IInternetProtocolEx_Resume(This) \ - ( (This)->lpVtbl -> Resume(This) ) - - -#define IInternetProtocolEx_Read(This,pv,cb,pcbRead) \ - ( (This)->lpVtbl -> Read(This,pv,cb,pcbRead) ) - -#define IInternetProtocolEx_Seek(This,dlibMove,dwOrigin,plibNewPosition) \ - ( (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition) ) - -#define IInternetProtocolEx_LockRequest(This,dwOptions) \ - ( (This)->lpVtbl -> LockRequest(This,dwOptions) ) - -#define IInternetProtocolEx_UnlockRequest(This) \ - ( (This)->lpVtbl -> UnlockRequest(This) ) - - -#define IInternetProtocolEx_StartEx(This,pUri,pOIProtSink,pOIBindInfo,grfPI,dwReserved) \ - ( (This)->lpVtbl -> StartEx(This,pUri,pOIProtSink,pOIBindInfo,grfPI,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetProtocolEx_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0031 */ -/* [local] */ - -#endif -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -#ifndef _LPIINTERNETPROTOCOLSINK_DEFINED -#define _LPIINTERNETPROTOCOLSINK_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0031_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0031_v0_0_s_ifspec; - -#ifndef __IInternetProtocolSink_INTERFACE_DEFINED__ -#define __IInternetProtocolSink_INTERFACE_DEFINED__ - -/* interface IInternetProtocolSink */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInternetProtocolSink *LPIINTERNETPROTOCOLSINK; - - -EXTERN_C const IID IID_IInternetProtocolSink; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9e5-baf9-11ce-8c82-00aa004ba90b") - IInternetProtocolSink : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Switch( - /* [in] */ PROTOCOLDATA *pProtocolData) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReportProgress( - /* [in] */ ULONG ulStatusCode, - /* [in] */ LPCWSTR szStatusText) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReportData( - /* [in] */ DWORD grfBSCF, - /* [in] */ ULONG ulProgress, - /* [in] */ ULONG ulProgressMax) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReportResult( - /* [in] */ HRESULT hrResult, - /* [in] */ DWORD dwError, - /* [in] */ LPCWSTR szResult) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetProtocolSinkVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetProtocolSink * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetProtocolSink * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetProtocolSink * This); - - HRESULT ( STDMETHODCALLTYPE *Switch )( - IInternetProtocolSink * This, - /* [in] */ PROTOCOLDATA *pProtocolData); - - HRESULT ( STDMETHODCALLTYPE *ReportProgress )( - IInternetProtocolSink * This, - /* [in] */ ULONG ulStatusCode, - /* [in] */ LPCWSTR szStatusText); - - HRESULT ( STDMETHODCALLTYPE *ReportData )( - IInternetProtocolSink * This, - /* [in] */ DWORD grfBSCF, - /* [in] */ ULONG ulProgress, - /* [in] */ ULONG ulProgressMax); - - HRESULT ( STDMETHODCALLTYPE *ReportResult )( - IInternetProtocolSink * This, - /* [in] */ HRESULT hrResult, - /* [in] */ DWORD dwError, - /* [in] */ LPCWSTR szResult); - - END_INTERFACE - } IInternetProtocolSinkVtbl; - - interface IInternetProtocolSink - { - CONST_VTBL struct IInternetProtocolSinkVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetProtocolSink_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetProtocolSink_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetProtocolSink_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetProtocolSink_Switch(This,pProtocolData) \ - ( (This)->lpVtbl -> Switch(This,pProtocolData) ) - -#define IInternetProtocolSink_ReportProgress(This,ulStatusCode,szStatusText) \ - ( (This)->lpVtbl -> ReportProgress(This,ulStatusCode,szStatusText) ) - -#define IInternetProtocolSink_ReportData(This,grfBSCF,ulProgress,ulProgressMax) \ - ( (This)->lpVtbl -> ReportData(This,grfBSCF,ulProgress,ulProgressMax) ) - -#define IInternetProtocolSink_ReportResult(This,hrResult,dwError,szResult) \ - ( (This)->lpVtbl -> ReportResult(This,hrResult,dwError,szResult) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetProtocolSink_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0032 */ -/* [local] */ - -#endif -#ifndef _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED -#define _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0032_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0032_v0_0_s_ifspec; - -#ifndef __IInternetProtocolSinkStackable_INTERFACE_DEFINED__ -#define __IInternetProtocolSinkStackable_INTERFACE_DEFINED__ - -/* interface IInternetProtocolSinkStackable */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInternetProtocolSinkStackable *LPIINTERNETPROTOCOLSINKStackable; - - -EXTERN_C const IID IID_IInternetProtocolSinkStackable; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9f0-baf9-11ce-8c82-00aa004ba90b") - IInternetProtocolSinkStackable : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SwitchSink( - /* [in] */ IInternetProtocolSink *pOIProtSink) = 0; - - virtual HRESULT STDMETHODCALLTYPE CommitSwitch( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE RollbackSwitch( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetProtocolSinkStackableVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetProtocolSinkStackable * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetProtocolSinkStackable * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetProtocolSinkStackable * This); - - HRESULT ( STDMETHODCALLTYPE *SwitchSink )( - IInternetProtocolSinkStackable * This, - /* [in] */ IInternetProtocolSink *pOIProtSink); - - HRESULT ( STDMETHODCALLTYPE *CommitSwitch )( - IInternetProtocolSinkStackable * This); - - HRESULT ( STDMETHODCALLTYPE *RollbackSwitch )( - IInternetProtocolSinkStackable * This); - - END_INTERFACE - } IInternetProtocolSinkStackableVtbl; - - interface IInternetProtocolSinkStackable - { - CONST_VTBL struct IInternetProtocolSinkStackableVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetProtocolSinkStackable_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetProtocolSinkStackable_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetProtocolSinkStackable_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetProtocolSinkStackable_SwitchSink(This,pOIProtSink) \ - ( (This)->lpVtbl -> SwitchSink(This,pOIProtSink) ) - -#define IInternetProtocolSinkStackable_CommitSwitch(This) \ - ( (This)->lpVtbl -> CommitSwitch(This) ) - -#define IInternetProtocolSinkStackable_RollbackSwitch(This) \ - ( (This)->lpVtbl -> RollbackSwitch(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetProtocolSinkStackable_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0033 */ -/* [local] */ - -#endif -#ifndef _LPIINTERNETSESSION_DEFINED -#define _LPIINTERNETSESSION_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0033_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0033_v0_0_s_ifspec; - -#ifndef __IInternetSession_INTERFACE_DEFINED__ -#define __IInternetSession_INTERFACE_DEFINED__ - -/* interface IInternetSession */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInternetSession *LPIINTERNETSESSION; - -typedef -enum _tagOIBDG_FLAGS - { - OIBDG_APARTMENTTHREADED = 0x100, - OIBDG_DATAONLY = 0x1000 - } OIBDG_FLAGS; - - -EXTERN_C const IID IID_IInternetSession; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9e7-baf9-11ce-8c82-00aa004ba90b") - IInternetSession : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE RegisterNameSpace( - /* [in] */ IClassFactory *pCF, - /* [in] */ REFCLSID rclsid, - /* [in] */ LPCWSTR pwzProtocol, - /* [in] */ ULONG cPatterns, - /* [in] */ const LPCWSTR *ppwzPatterns, - /* [in] */ DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnregisterNameSpace( - /* [in] */ IClassFactory *pCF, - /* [in] */ LPCWSTR pszProtocol) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterMimeFilter( - /* [in] */ IClassFactory *pCF, - /* [in] */ REFCLSID rclsid, - /* [in] */ LPCWSTR pwzType) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnregisterMimeFilter( - /* [in] */ IClassFactory *pCF, - /* [in] */ LPCWSTR pwzType) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBinding( - /* [in] */ LPBC pBC, - /* [in] */ LPCWSTR szUrl, - /* [in] */ IUnknown *pUnkOuter, - /* [unique][out] */ IUnknown **ppUnk, - /* [unique][out] */ IInternetProtocol **ppOInetProt, - /* [in] */ DWORD dwOption) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetSessionOption( - /* [in] */ DWORD dwOption, - /* [in] */ LPVOID pBuffer, - /* [in] */ DWORD dwBufferLength, - /* [in] */ DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSessionOption( - /* [in] */ DWORD dwOption, - /* [out][in] */ LPVOID pBuffer, - /* [out][in] */ DWORD *pdwBufferLength, - /* [in] */ DWORD dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetSessionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetSession * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetSession * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetSession * This); - - HRESULT ( STDMETHODCALLTYPE *RegisterNameSpace )( - IInternetSession * This, - /* [in] */ IClassFactory *pCF, - /* [in] */ REFCLSID rclsid, - /* [in] */ LPCWSTR pwzProtocol, - /* [in] */ ULONG cPatterns, - /* [in] */ const LPCWSTR *ppwzPatterns, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *UnregisterNameSpace )( - IInternetSession * This, - /* [in] */ IClassFactory *pCF, - /* [in] */ LPCWSTR pszProtocol); - - HRESULT ( STDMETHODCALLTYPE *RegisterMimeFilter )( - IInternetSession * This, - /* [in] */ IClassFactory *pCF, - /* [in] */ REFCLSID rclsid, - /* [in] */ LPCWSTR pwzType); - - HRESULT ( STDMETHODCALLTYPE *UnregisterMimeFilter )( - IInternetSession * This, - /* [in] */ IClassFactory *pCF, - /* [in] */ LPCWSTR pwzType); - - HRESULT ( STDMETHODCALLTYPE *CreateBinding )( - IInternetSession * This, - /* [in] */ LPBC pBC, - /* [in] */ LPCWSTR szUrl, - /* [in] */ IUnknown *pUnkOuter, - /* [unique][out] */ IUnknown **ppUnk, - /* [unique][out] */ IInternetProtocol **ppOInetProt, - /* [in] */ DWORD dwOption); - - HRESULT ( STDMETHODCALLTYPE *SetSessionOption )( - IInternetSession * This, - /* [in] */ DWORD dwOption, - /* [in] */ LPVOID pBuffer, - /* [in] */ DWORD dwBufferLength, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *GetSessionOption )( - IInternetSession * This, - /* [in] */ DWORD dwOption, - /* [out][in] */ LPVOID pBuffer, - /* [out][in] */ DWORD *pdwBufferLength, - /* [in] */ DWORD dwReserved); - - END_INTERFACE - } IInternetSessionVtbl; - - interface IInternetSession - { - CONST_VTBL struct IInternetSessionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetSession_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetSession_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetSession_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetSession_RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved) \ - ( (This)->lpVtbl -> RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved) ) - -#define IInternetSession_UnregisterNameSpace(This,pCF,pszProtocol) \ - ( (This)->lpVtbl -> UnregisterNameSpace(This,pCF,pszProtocol) ) - -#define IInternetSession_RegisterMimeFilter(This,pCF,rclsid,pwzType) \ - ( (This)->lpVtbl -> RegisterMimeFilter(This,pCF,rclsid,pwzType) ) - -#define IInternetSession_UnregisterMimeFilter(This,pCF,pwzType) \ - ( (This)->lpVtbl -> UnregisterMimeFilter(This,pCF,pwzType) ) - -#define IInternetSession_CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption) \ - ( (This)->lpVtbl -> CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption) ) - -#define IInternetSession_SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved) \ - ( (This)->lpVtbl -> SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved) ) - -#define IInternetSession_GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved) \ - ( (This)->lpVtbl -> GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetSession_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0034 */ -/* [local] */ - -#endif -#ifndef _LPIINTERNETTHREADSWITCH_DEFINED -#define _LPIINTERNETTHREADSWITCH_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0034_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0034_v0_0_s_ifspec; - -#ifndef __IInternetThreadSwitch_INTERFACE_DEFINED__ -#define __IInternetThreadSwitch_INTERFACE_DEFINED__ - -/* interface IInternetThreadSwitch */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInternetThreadSwitch *LPIINTERNETTHREADSWITCH; - - -EXTERN_C const IID IID_IInternetThreadSwitch; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9e8-baf9-11ce-8c82-00aa004ba90b") - IInternetThreadSwitch : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Prepare( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Continue( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetThreadSwitchVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetThreadSwitch * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetThreadSwitch * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetThreadSwitch * This); - - HRESULT ( STDMETHODCALLTYPE *Prepare )( - IInternetThreadSwitch * This); - - HRESULT ( STDMETHODCALLTYPE *Continue )( - IInternetThreadSwitch * This); - - END_INTERFACE - } IInternetThreadSwitchVtbl; - - interface IInternetThreadSwitch - { - CONST_VTBL struct IInternetThreadSwitchVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetThreadSwitch_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetThreadSwitch_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetThreadSwitch_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetThreadSwitch_Prepare(This) \ - ( (This)->lpVtbl -> Prepare(This) ) - -#define IInternetThreadSwitch_Continue(This) \ - ( (This)->lpVtbl -> Continue(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetThreadSwitch_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0035 */ -/* [local] */ - -#endif -#ifndef _LPIINTERNETPRIORITY_DEFINED -#define _LPIINTERNETPRIORITY_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0035_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0035_v0_0_s_ifspec; - -#ifndef __IInternetPriority_INTERFACE_DEFINED__ -#define __IInternetPriority_INTERFACE_DEFINED__ - -/* interface IInternetPriority */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInternetPriority *LPIINTERNETPRIORITY; - - -EXTERN_C const IID IID_IInternetPriority; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9eb-baf9-11ce-8c82-00aa004ba90b") - IInternetPriority : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetPriority( - /* [in] */ LONG nPriority) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPriority( - /* [out] */ LONG *pnPriority) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetPriorityVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetPriority * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetPriority * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetPriority * This); - - HRESULT ( STDMETHODCALLTYPE *SetPriority )( - IInternetPriority * This, - /* [in] */ LONG nPriority); - - HRESULT ( STDMETHODCALLTYPE *GetPriority )( - IInternetPriority * This, - /* [out] */ LONG *pnPriority); - - END_INTERFACE - } IInternetPriorityVtbl; - - interface IInternetPriority - { - CONST_VTBL struct IInternetPriorityVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetPriority_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetPriority_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetPriority_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetPriority_SetPriority(This,nPriority) \ - ( (This)->lpVtbl -> SetPriority(This,nPriority) ) - -#define IInternetPriority_GetPriority(This,pnPriority) \ - ( (This)->lpVtbl -> GetPriority(This,pnPriority) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetPriority_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0036 */ -/* [local] */ - -#endif -#ifndef _LPIINTERNETPROTOCOLINFO_DEFINED -#define _LPIINTERNETPROTOCOLINFO_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0036_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0036_v0_0_s_ifspec; - -#ifndef __IInternetProtocolInfo_INTERFACE_DEFINED__ -#define __IInternetProtocolInfo_INTERFACE_DEFINED__ - -/* interface IInternetProtocolInfo */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO; - -typedef -enum _tagPARSEACTION - { - PARSE_CANONICALIZE = 1, - PARSE_FRIENDLY = ( PARSE_CANONICALIZE + 1 ) , - PARSE_SECURITY_URL = ( PARSE_FRIENDLY + 1 ) , - PARSE_ROOTDOCUMENT = ( PARSE_SECURITY_URL + 1 ) , - PARSE_DOCUMENT = ( PARSE_ROOTDOCUMENT + 1 ) , - PARSE_ANCHOR = ( PARSE_DOCUMENT + 1 ) , - PARSE_ENCODE_IS_UNESCAPE = ( PARSE_ANCHOR + 1 ) , - PARSE_DECODE_IS_ESCAPE = ( PARSE_ENCODE_IS_UNESCAPE + 1 ) , - PARSE_PATH_FROM_URL = ( PARSE_DECODE_IS_ESCAPE + 1 ) , - PARSE_URL_FROM_PATH = ( PARSE_PATH_FROM_URL + 1 ) , - PARSE_MIME = ( PARSE_URL_FROM_PATH + 1 ) , - PARSE_SERVER = ( PARSE_MIME + 1 ) , - PARSE_SCHEMA = ( PARSE_SERVER + 1 ) , - PARSE_SITE = ( PARSE_SCHEMA + 1 ) , - PARSE_DOMAIN = ( PARSE_SITE + 1 ) , - PARSE_LOCATION = ( PARSE_DOMAIN + 1 ) , - PARSE_SECURITY_DOMAIN = ( PARSE_LOCATION + 1 ) , - PARSE_ESCAPE = ( PARSE_SECURITY_DOMAIN + 1 ) , - PARSE_UNESCAPE = ( PARSE_ESCAPE + 1 ) - } PARSEACTION; - -typedef -enum _tagPSUACTION - { - PSU_DEFAULT = 1, - PSU_SECURITY_URL_ONLY = ( PSU_DEFAULT + 1 ) - } PSUACTION; - -typedef -enum _tagQUERYOPTION - { - QUERY_EXPIRATION_DATE = 1, - QUERY_TIME_OF_LAST_CHANGE = ( QUERY_EXPIRATION_DATE + 1 ) , - QUERY_CONTENT_ENCODING = ( QUERY_TIME_OF_LAST_CHANGE + 1 ) , - QUERY_CONTENT_TYPE = ( QUERY_CONTENT_ENCODING + 1 ) , - QUERY_REFRESH = ( QUERY_CONTENT_TYPE + 1 ) , - QUERY_RECOMBINE = ( QUERY_REFRESH + 1 ) , - QUERY_CAN_NAVIGATE = ( QUERY_RECOMBINE + 1 ) , - QUERY_USES_NETWORK = ( QUERY_CAN_NAVIGATE + 1 ) , - QUERY_IS_CACHED = ( QUERY_USES_NETWORK + 1 ) , - QUERY_IS_INSTALLEDENTRY = ( QUERY_IS_CACHED + 1 ) , - QUERY_IS_CACHED_OR_MAPPED = ( QUERY_IS_INSTALLEDENTRY + 1 ) , - QUERY_USES_CACHE = ( QUERY_IS_CACHED_OR_MAPPED + 1 ) , - QUERY_IS_SECURE = ( QUERY_USES_CACHE + 1 ) , - QUERY_IS_SAFE = ( QUERY_IS_SECURE + 1 ) , - QUERY_USES_HISTORYFOLDER = ( QUERY_IS_SAFE + 1 ) , - QUERY_IS_CACHED_AND_USABLE_OFFLINE = ( QUERY_USES_HISTORYFOLDER + 1 ) - } QUERYOPTION; - - -EXTERN_C const IID IID_IInternetProtocolInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9ec-baf9-11ce-8c82-00aa004ba90b") - IInternetProtocolInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ParseUrl( - /* [in] */ LPCWSTR pwzUrl, - /* [in] */ PARSEACTION ParseAction, - /* [in] */ DWORD dwParseFlags, - /* [annotation][out] */ - __RPC__out LPWSTR pwzResult, - /* [in] */ DWORD cchResult, - /* [out] */ DWORD *pcchResult, - /* [in] */ DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE CombineUrl( - /* [in] */ LPCWSTR pwzBaseUrl, - /* [in] */ LPCWSTR pwzRelativeUrl, - /* [in] */ DWORD dwCombineFlags, - /* [annotation][out] */ - __RPC__in LPWSTR pwzResult, - /* [in] */ DWORD cchResult, - /* [out] */ DWORD *pcchResult, - /* [in] */ DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE CompareUrl( - /* [in] */ LPCWSTR pwzUrl1, - /* [in] */ LPCWSTR pwzUrl2, - /* [in] */ DWORD dwCompareFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE QueryInfo( - /* [in] */ LPCWSTR pwzUrl, - /* [in] */ QUERYOPTION OueryOption, - /* [in] */ DWORD dwQueryFlags, - /* [size_is][out][in] */ LPVOID pBuffer, - /* [in] */ DWORD cbBuffer, - /* [out][in] */ DWORD *pcbBuf, - /* [in] */ DWORD dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetProtocolInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetProtocolInfo * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetProtocolInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetProtocolInfo * This); - - HRESULT ( STDMETHODCALLTYPE *ParseUrl )( - IInternetProtocolInfo * This, - /* [in] */ LPCWSTR pwzUrl, - /* [in] */ PARSEACTION ParseAction, - /* [in] */ DWORD dwParseFlags, - /* [annotation][out] */ - __RPC__out LPWSTR pwzResult, - /* [in] */ DWORD cchResult, - /* [out] */ DWORD *pcchResult, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *CombineUrl )( - IInternetProtocolInfo * This, - /* [in] */ LPCWSTR pwzBaseUrl, - /* [in] */ LPCWSTR pwzRelativeUrl, - /* [in] */ DWORD dwCombineFlags, - /* [annotation][out] */ - __RPC__in LPWSTR pwzResult, - /* [in] */ DWORD cchResult, - /* [out] */ DWORD *pcchResult, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *CompareUrl )( - IInternetProtocolInfo * This, - /* [in] */ LPCWSTR pwzUrl1, - /* [in] */ LPCWSTR pwzUrl2, - /* [in] */ DWORD dwCompareFlags); - - HRESULT ( STDMETHODCALLTYPE *QueryInfo )( - IInternetProtocolInfo * This, - /* [in] */ LPCWSTR pwzUrl, - /* [in] */ QUERYOPTION OueryOption, - /* [in] */ DWORD dwQueryFlags, - /* [size_is][out][in] */ LPVOID pBuffer, - /* [in] */ DWORD cbBuffer, - /* [out][in] */ DWORD *pcbBuf, - /* [in] */ DWORD dwReserved); - - END_INTERFACE - } IInternetProtocolInfoVtbl; - - interface IInternetProtocolInfo - { - CONST_VTBL struct IInternetProtocolInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetProtocolInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetProtocolInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetProtocolInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetProtocolInfo_ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved) \ - ( (This)->lpVtbl -> ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved) ) - -#define IInternetProtocolInfo_CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved) \ - ( (This)->lpVtbl -> CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved) ) - -#define IInternetProtocolInfo_CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags) \ - ( (This)->lpVtbl -> CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags) ) - -#define IInternetProtocolInfo_QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved) \ - ( (This)->lpVtbl -> QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetProtocolInfo_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0037 */ -/* [local] */ - -#ifndef URLMON_STRICT -// PARSE_ENCODE was misnamed and is deprecated for PARSE_UNESCAPE -#define PARSE_ENCODE PARSE_ENCODE_IS_UNESCAPE -// PARSE_DECODE was misnamed and is deprecated for PARSE_ESCAPE -#define PARSE_DECODE PARSE_DECODE_IS_ESCAPE -#endif //!URLMON_STRICT -#endif -#define IOInet IInternet -#define IOInetBindInfo IInternetBindInfo -#define IOInetBindInfoEx IInternetBindInfoEx -#define IOInetProtocolRoot IInternetProtocolRoot -#define IOInetProtocol IInternetProtocol -#if (_WIN32_IE >= _WIN32_IE_IE70) -#define IOInetProtocolEx IInternetProtocolEx -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -#define IOInetProtocolSink IInternetProtocolSink -#define IOInetProtocolInfo IInternetProtocolInfo -#define IOInetSession IInternetSession -#define IOInetPriority IInternetPriority -#define IOInetThreadSwitch IInternetThreadSwitch -#define IOInetProtocolSinkStackable IInternetProtocolSinkStackable -#define LPOINET LPIINTERNET -#define LPOINETPROTOCOLINFO LPIINTERNETPROTOCOLINFO -#define LPOINETBINDINFO LPIINTERNETBINDINFO -#define LPOINETPROTOCOLROOT LPIINTERNETPROTOCOLROOT -#define LPOINETPROTOCOL LPIINTERNETPROTOCOL -#if (_WIN32_IE >= _WIN32_IE_IE70) -#define LPOINETPROTOCOLEX LPIINTERNETPROTOCOLEX -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -#define LPOINETPROTOCOLSINK LPIINTERNETPROTOCOLSINK -#define LPOINETSESSION LPIINTERNETSESSION -#define LPOINETTHREADSWITCH LPIINTERNETTHREADSWITCH -#define LPOINETPRIORITY LPIINTERNETPRIORITY -#define LPOINETPROTOCOLINFO LPIINTERNETPROTOCOLINFO -#define LPOINETPROTOCOLSINKSTACKABLE LPIINTERNETPROTOCOLSINKSTACKABLE -#define IID_IOInet IID_IInternet -#define IID_IOInetBindInfo IID_IInternetBindInfo -#define IID_IOInetBindInfoEx IID_IInternetBindInfoEx -#define IID_IOInetProtocolRoot IID_IInternetProtocolRoot -#define IID_IOInetProtocol IID_IInternetProtocol -#if (_WIN32_IE >= _WIN32_IE_IE70) -#define IID_IOInetProtocolEx IID_IInternetProtocolEx -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -#define IID_IOInetProtocolSink IID_IInternetProtocolSink -#define IID_IOInetProtocolInfo IID_IInternetProtocolInfo -#define IID_IOInetSession IID_IInternetSession -#define IID_IOInetPriority IID_IInternetPriority -#define IID_IOInetThreadSwitch IID_IInternetThreadSwitch -#define IID_IOInetProtocolSinkStackable IID_IInternetProtocolSinkStackable -STDAPI CoInternetParseUrl( - LPCWSTR pwzUrl, - PARSEACTION ParseAction, - DWORD dwFlags, - _Out_writes_to_(cchResult,*pcchResult+1) LPWSTR pszResult, - DWORD cchResult, - _Out_ DWORD *pcchResult, - DWORD dwReserved - ); -#if (_WIN32_IE >= _WIN32_IE_IE70) -STDAPI CoInternetParseIUri( - _In_ IUri *pIUri, - PARSEACTION ParseAction, - DWORD dwFlags, - _Out_writes_to_(cchResult,*pcchResult+1) LPWSTR pwzResult, - DWORD cchResult, - _Out_ DWORD *pcchResult, - _Reserved_ DWORD_PTR dwReserved - ); -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -STDAPI CoInternetCombineUrl( - LPCWSTR pwzBaseUrl, - LPCWSTR pwzRelativeUrl, - DWORD dwCombineFlags, - _Out_writes_to_(cchResult,*pcchResult+1) LPWSTR pszResult, - DWORD cchResult, - _Out_opt_ DWORD *pcchResult, - _Reserved_ DWORD dwReserved - ); -#if (_WIN32_IE >= _WIN32_IE_IE70) -STDAPI CoInternetCombineUrlEx( - _In_opt_ IUri *pBaseUri, - _In_opt_ LPCWSTR pwzRelativeUrl, - DWORD dwCombineFlags, - _Outptr_ IUri **ppCombinedUri, - _In_opt_ DWORD_PTR dwReserved - ); -STDAPI CoInternetCombineIUri ( - _In_ IUri *pBaseUri, - _In_ IUri *pRelativeUri, - DWORD dwCombineFlags, - _Outptr_ IUri **ppCombinedUri, - _In_opt_ DWORD_PTR dwReserved - ); -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -STDAPI CoInternetCompareUrl( - LPCWSTR pwzUrl1, - LPCWSTR pwzUrl2, - DWORD dwFlags - ); -STDAPI CoInternetGetProtocolFlags( - LPCWSTR pwzUrl, - _Out_ DWORD *pdwFlags, - DWORD dwReserved - ); -STDAPI CoInternetQueryInfo( - LPCWSTR pwzUrl, - QUERYOPTION QueryOptions, - DWORD dwQueryFlags, - _Out_writes_bytes_to_(cbBuffer, *pcbBuffer) LPVOID pvBuffer, - _In_range_(>=, sizeof(DWORD)) DWORD cbBuffer, - _Out_opt_ DWORD *pcbBuffer, - DWORD dwReserved - ); -STDAPI CoInternetGetSession( - DWORD dwSessionMode, - _Outptr_ IInternetSession **ppIInternetSession, - DWORD dwReserved - ); -STDAPI CoInternetGetSecurityUrl( - LPCWSTR pwszUrl, - _Outptr_ LPWSTR *ppwszSecUrl, - _In_ PSUACTION psuAction, - _Reserved_ DWORD dwReserved - ); -STDAPI AsyncInstallDistributionUnit( - _In_ LPCWSTR szDistUnit, - _In_opt_ LPCWSTR szTYPE, - _In_opt_ LPCWSTR szExt, - DWORD dwFileVersionMS, - DWORD dwFileVersionLS, - _In_opt_ LPCWSTR szURL, - _In_ IBindCtx *pbc, - _Reserved_ LPVOID pvReserved, - DWORD flags - ); -#if (_WIN32_IE >= _WIN32_IE_IE70) -STDAPI CoInternetGetSecurityUrlEx( - _In_ IUri *pUri, - _Outptr_ IUri **ppSecUri, - PSUACTION psuAction, - _Reserved_ DWORD_PTR dwReserved - ); -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -#ifndef _INTERNETFEATURELIST_DEFINED -#define _INTERNETFEATURELIST_DEFINED -typedef -enum _tagINTERNETFEATURELIST - { - FEATURE_OBJECT_CACHING = 0, - FEATURE_ZONE_ELEVATION = ( FEATURE_OBJECT_CACHING + 1 ) , - FEATURE_MIME_HANDLING = ( FEATURE_ZONE_ELEVATION + 1 ) , - FEATURE_MIME_SNIFFING = ( FEATURE_MIME_HANDLING + 1 ) , - FEATURE_WINDOW_RESTRICTIONS = ( FEATURE_MIME_SNIFFING + 1 ) , - FEATURE_WEBOC_POPUPMANAGEMENT = ( FEATURE_WINDOW_RESTRICTIONS + 1 ) , - FEATURE_BEHAVIORS = ( FEATURE_WEBOC_POPUPMANAGEMENT + 1 ) , - FEATURE_DISABLE_MK_PROTOCOL = ( FEATURE_BEHAVIORS + 1 ) , - FEATURE_LOCALMACHINE_LOCKDOWN = ( FEATURE_DISABLE_MK_PROTOCOL + 1 ) , - FEATURE_SECURITYBAND = ( FEATURE_LOCALMACHINE_LOCKDOWN + 1 ) , - FEATURE_RESTRICT_ACTIVEXINSTALL = ( FEATURE_SECURITYBAND + 1 ) , - FEATURE_VALIDATE_NAVIGATE_URL = ( FEATURE_RESTRICT_ACTIVEXINSTALL + 1 ) , - FEATURE_RESTRICT_FILEDOWNLOAD = ( FEATURE_VALIDATE_NAVIGATE_URL + 1 ) , - FEATURE_ADDON_MANAGEMENT = ( FEATURE_RESTRICT_FILEDOWNLOAD + 1 ) , - FEATURE_PROTOCOL_LOCKDOWN = ( FEATURE_ADDON_MANAGEMENT + 1 ) , - FEATURE_HTTP_USERNAME_PASSWORD_DISABLE = ( FEATURE_PROTOCOL_LOCKDOWN + 1 ) , - FEATURE_SAFE_BINDTOOBJECT = ( FEATURE_HTTP_USERNAME_PASSWORD_DISABLE + 1 ) , - FEATURE_UNC_SAVEDFILECHECK = ( FEATURE_SAFE_BINDTOOBJECT + 1 ) , - FEATURE_GET_URL_DOM_FILEPATH_UNENCODED = ( FEATURE_UNC_SAVEDFILECHECK + 1 ) , - FEATURE_TABBED_BROWSING = ( FEATURE_GET_URL_DOM_FILEPATH_UNENCODED + 1 ) , - FEATURE_SSLUX = ( FEATURE_TABBED_BROWSING + 1 ) , - FEATURE_DISABLE_NAVIGATION_SOUNDS = ( FEATURE_SSLUX + 1 ) , - FEATURE_DISABLE_LEGACY_COMPRESSION = ( FEATURE_DISABLE_NAVIGATION_SOUNDS + 1 ) , - FEATURE_FORCE_ADDR_AND_STATUS = ( FEATURE_DISABLE_LEGACY_COMPRESSION + 1 ) , - FEATURE_XMLHTTP = ( FEATURE_FORCE_ADDR_AND_STATUS + 1 ) , - FEATURE_DISABLE_TELNET_PROTOCOL = ( FEATURE_XMLHTTP + 1 ) , - FEATURE_FEEDS = ( FEATURE_DISABLE_TELNET_PROTOCOL + 1 ) , - FEATURE_BLOCK_INPUT_PROMPTS = ( FEATURE_FEEDS + 1 ) , - FEATURE_ENTRY_COUNT = ( FEATURE_BLOCK_INPUT_PROMPTS + 1 ) - } INTERNETFEATURELIST; - - -// CoInternetSetFeatureEnabled can be used to set/reset features. -// The following flags control where the feature is set - -#define SET_FEATURE_ON_THREAD 0x00000001 -#define SET_FEATURE_ON_PROCESS 0x00000002 -#define SET_FEATURE_IN_REGISTRY 0x00000004 -#define SET_FEATURE_ON_THREAD_LOCALMACHINE 0x00000008 -#define SET_FEATURE_ON_THREAD_INTRANET 0x00000010 -#define SET_FEATURE_ON_THREAD_TRUSTED 0x00000020 -#define SET_FEATURE_ON_THREAD_INTERNET 0x00000040 -#define SET_FEATURE_ON_THREAD_RESTRICTED 0x00000080 - -// CoInternetIsFeatureEnabled can be used to get features. -// The following flags control where the feature is obtained from -// default is from process - -#define GET_FEATURE_FROM_THREAD 0x00000001 -#define GET_FEATURE_FROM_PROCESS 0x00000002 -#define GET_FEATURE_FROM_REGISTRY 0x00000004 -#define GET_FEATURE_FROM_THREAD_LOCALMACHINE 0x00000008 -#define GET_FEATURE_FROM_THREAD_INTRANET 0x00000010 -#define GET_FEATURE_FROM_THREAD_TRUSTED 0x00000020 -#define GET_FEATURE_FROM_THREAD_INTERNET 0x00000040 -#define GET_FEATURE_FROM_THREAD_RESTRICTED 0x00000080 -#endif -STDAPI CoInternetSetFeatureEnabled( - INTERNETFEATURELIST FeatureEntry, - DWORD dwFlags, - BOOL fEnable - ); -STDAPI CoInternetIsFeatureEnabled( - INTERNETFEATURELIST FeatureEntry, - DWORD dwFlags - ); -STDAPI CoInternetIsFeatureEnabledForUrl( - INTERNETFEATURELIST FeatureEntry, - DWORD dwFlags, - _In_opt_ LPCWSTR szURL, - _In_opt_ IInternetSecurityManager *pSecMgr - ); -STDAPI CoInternetIsFeatureEnabledForIUri( - INTERNETFEATURELIST FeatureEntry, - DWORD dwFlags, - _In_opt_ IUri * pIUri, - _In_opt_ IInternetSecurityManagerEx2 *pSecMgr - ); -STDAPI CoInternetIsFeatureZoneElevationEnabled( - _In_opt_ LPCWSTR szFromURL, - _In_ LPCWSTR szToURL, - _In_opt_ IInternetSecurityManager *pSecMgr, - DWORD dwFlags - ); -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) - -STDAPI CopyStgMedium(_In_ const STGMEDIUM * pcstgmedSrc, - _Out_ STGMEDIUM * pstgmedDest); -STDAPI CopyBindInfo(_In_ const BINDINFO * pcbiSrc, - _Out_ BINDINFO * pbiDest ); -STDAPI_(void) ReleaseBindInfo( _Inout_ BINDINFO * pbindinfo ); - -#define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(0x800C0011L) -#define INET_E_USE_DEFAULT_SETTING _HRESULT_TYPEDEF_(0x800C0012L) -#define INET_E_DEFAULT_ACTION INET_E_USE_DEFAULT_PROTOCOLHANDLER -#define INET_E_QUERYOPTION_UNKNOWN _HRESULT_TYPEDEF_(0x800C0013L) -#define INET_E_REDIRECTING _HRESULT_TYPEDEF_(0x800C0014L) -#define OInetParseUrl CoInternetParseUrl -#define OInetCombineUrl CoInternetCombineUrl -#if (_WIN32_IE >= _WIN32_IE_IE70) -#define OInetCombineUrlEx CoInternetCombineUrlEx -#define OInetCombineIUri CoInternetCombineIUri -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -#define OInetCompareUrl CoInternetCompareUrl -#define OInetQueryInfo CoInternetQueryInfo -#define OInetGetSession CoInternetGetSession -#endif // !_URLMON_NO_ASYNC_PLUGABLE_PROTOCOLS_ -// -// Static Protocol flags -// -#define PROTOCOLFLAG_NO_PICS_CHECK 0x00000001 - -// Do not take a dependency on the exact value of the private namespace, no guarantee is given that it won't change. -STDAPI_(PWSTR) IEGetUserPrivateNamespaceName(void); - -// Creates the security manager object. The first argument is the Service provider -// to allow for delegation -STDAPI CoInternetCreateSecurityManager(_In_opt_ IServiceProvider *pSP, _Outptr_ IInternetSecurityManager **ppSM, DWORD dwReserved); - -STDAPI CoInternetCreateZoneManager(_In_opt_ IServiceProvider *pSP, _Outptr_ IInternetZoneManager **ppZM, DWORD dwReserved); - - -// Security manager CLSID's -EXTERN_C const IID CLSID_InternetSecurityManager; -EXTERN_C const IID CLSID_InternetZoneManager; -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -EXTERN_C const IID CLSID_PersistentZoneIdentifier; -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) -// This service is used for delegation support on the Security Manager interface -#define SID_SInternetSecurityManager IID_IInternetSecurityManager - -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -#define SID_SInternetSecurityManagerEx IID_IInternetSecurityManagerEx -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) - -#if (_WIN32_IE >= _WIN32_IE_IE70) -#define SID_SInternetSecurityManagerEx2 IID_IInternetSecurityManagerEx2 -#endif //(_WIN32_IE >= _WIN32_IE_IE70) - -#define SID_SInternetHostSecurityManager IID_IInternetHostSecurityManager - -#ifndef _LPINTERNETSECURITYMGRSITE_DEFINED -#define _LPINTERNETSECURITYMGRSITE_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0037_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0037_v0_0_s_ifspec; - -#ifndef __IInternetSecurityMgrSite_INTERFACE_DEFINED__ -#define __IInternetSecurityMgrSite_INTERFACE_DEFINED__ - -/* interface IInternetSecurityMgrSite */ -/* [unique][helpstring][uuid][object][local] */ - - -EXTERN_C const IID IID_IInternetSecurityMgrSite; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9ed-baf9-11ce-8c82-00aa004ba90b") - IInternetSecurityMgrSite : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetWindow( - /* [out] */ HWND *phwnd) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableModeless( - /* [in] */ BOOL fEnable) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetSecurityMgrSiteVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetSecurityMgrSite * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetSecurityMgrSite * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetSecurityMgrSite * This); - - HRESULT ( STDMETHODCALLTYPE *GetWindow )( - IInternetSecurityMgrSite * This, - /* [out] */ HWND *phwnd); - - HRESULT ( STDMETHODCALLTYPE *EnableModeless )( - IInternetSecurityMgrSite * This, - /* [in] */ BOOL fEnable); - - END_INTERFACE - } IInternetSecurityMgrSiteVtbl; - - interface IInternetSecurityMgrSite - { - CONST_VTBL struct IInternetSecurityMgrSiteVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetSecurityMgrSite_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetSecurityMgrSite_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetSecurityMgrSite_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetSecurityMgrSite_GetWindow(This,phwnd) \ - ( (This)->lpVtbl -> GetWindow(This,phwnd) ) - -#define IInternetSecurityMgrSite_EnableModeless(This,fEnable) \ - ( (This)->lpVtbl -> EnableModeless(This,fEnable) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetSecurityMgrSite_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0038 */ -/* [local] */ - -#endif -#ifndef _LPINTERNETSECURITYMANANGER_DEFINED -#define _LPINTERNETSECURITYMANANGER_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0038_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0038_v0_0_s_ifspec; - -#ifndef __IInternetSecurityManager_INTERFACE_DEFINED__ -#define __IInternetSecurityManager_INTERFACE_DEFINED__ - -/* interface IInternetSecurityManager */ -/* [object][unique][helpstring][uuid] */ - -#define MUTZ_NOSAVEDFILECHECK 0x00000001 // don't check file: for saved file comment -#define MUTZ_ISFILE 0x00000002 // Assume URL if File, url does not need file:// -#define MUTZ_ACCEPT_WILDCARD_SCHEME 0x00000080 // Accept a wildcard scheme -#define MUTZ_ENFORCERESTRICTED 0x00000100 // enforce restricted zone independent of URL -#define MUTZ_RESERVED 0x00000200 // This is same as PUAF_NOSAVEDFILECHECK. However we already have MUTZ_NOSAVEDFILECHECK for this. -#define MUTZ_REQUIRESAVEDFILECHECK 0x00000400 // always check the file for MOTW (overriding FEATURE_UNC_SAVEDFILECHECK) -#define MUTZ_DONT_UNESCAPE 0x00000800 // Do not unescape the url -#define MUTZ_DONT_USE_CACHE 0x00001000 // Do not check the cache -#define MUTZ_FORCE_INTRANET_FLAGS 0x00002000 // Force the intranet flags to be active -#define MUTZ_IGNORE_ZONE_MAPPINGS 0x00004000 // Don't look up the Zone Mappings -// MapUrlToZone returns the zone index given a URL -#define MAX_SIZE_SECURITY_ID 512 // bytes - - -typedef /* [public] */ -enum __MIDL_IInternetSecurityManager_0001 - { - PUAF_DEFAULT = 0, - PUAF_NOUI = 0x1, - PUAF_ISFILE = 0x2, - PUAF_WARN_IF_DENIED = 0x4, - PUAF_FORCEUI_FOREGROUND = 0x8, - PUAF_CHECK_TIFS = 0x10, - PUAF_DONTCHECKBOXINDIALOG = 0x20, - PUAF_TRUSTED = 0x40, - PUAF_ACCEPT_WILDCARD_SCHEME = 0x80, - PUAF_ENFORCERESTRICTED = 0x100, - PUAF_NOSAVEDFILECHECK = 0x200, - PUAF_REQUIRESAVEDFILECHECK = 0x400, - PUAF_DONT_USE_CACHE = 0x1000, - PUAF_RESERVED1 = 0x2000, - PUAF_RESERVED2 = 0x4000, - PUAF_LMZ_UNLOCKED = 0x10000, - PUAF_LMZ_LOCKED = 0x20000, - PUAF_DEFAULTZONEPOL = 0x40000, - PUAF_NPL_USE_LOCKED_IF_RESTRICTED = 0x80000, - PUAF_NOUIIFLOCKED = 0x100000, - PUAF_DRAGPROTOCOLCHECK = 0x200000 - } PUAF; - -typedef /* [public] */ -enum __MIDL_IInternetSecurityManager_0002 - { - PUAFOUT_DEFAULT = 0, - PUAFOUT_ISLOCKZONEPOLICY = 0x1 - } PUAFOUT; - -// Note that for the below function, the semantics of the 'pwszUrl', -// 'pContext', and 'cbContext' parameters depend on the specific -// URLACTION_* enum value that is passed for 'dwAction'. For example, -// when 'dwAction' is URLACTION_HTML_MIXED_CONTENT, 'pwszUrl' will be -// the target URL of the resource, 'pContext' will be the containing -// document's IUri* cast to BYTE*, and 'cbContext' will be sizeof(Uri*). -// When 'dwAction' is URLACTION_CROSS_DOMAIN_DATA, 'pwszUrl' will be -// the source URL, 'pContext' will be the target PCWSTR cast to BYTE*, -// and 'cbContext' will be the size of the string including its null -// terminator. Implementers should use the value of 'dwAction' to -// correctly interpret the 'pswzUrl', 'pContext' and 'cbContext' for -// each action type. -// This is the wrapper function that most clients will use. -// It figures out the current Policy for the passed in Action, -// and puts up UI if the current Policy indicates that the user -// should be queried. It returns back the Policy which the caller -// will use to determine if the action should be allowed -// This is the wrapper function to conveniently read a custom policy. -typedef /* [public] */ -enum __MIDL_IInternetSecurityManager_0003 - { - SZM_CREATE = 0, - SZM_DELETE = 0x1 - } SZM_FLAGS; - -// SetZoneMapping -// lpszPattern: string denoting a URL pattern -// Examples of valid patterns: -// *://*.msn.com -// http://*.sony.co.jp -// *://et.msn.com -// ftp://157.54.23.41/ -// https://localsvr -// file:\localsvr\share -// *://157.54.100-200.* -// Examples of invalid patterns: -// http://*.lcs.mit.edu -// ftp://* -// dwFlags: SZM_FLAGS values - -EXTERN_C const IID IID_IInternetSecurityManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9ee-baf9-11ce-8c82-00aa004ba90b") - IInternetSecurityManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetSecuritySite( - /* [unique][in] */ __RPC__in_opt IInternetSecurityMgrSite *pSite) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSecuritySite( - /* [out] */ __RPC__deref_out_opt IInternetSecurityMgrSite **ppSite) = 0; - - virtual HRESULT STDMETHODCALLTYPE MapUrlToZone( - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [out] */ __RPC__out DWORD *pdwZone, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSecurityId( - /* [annotation][in] */ - _In_ LPCWSTR pwszUrl, - /* [annotation][size_is][out] */ - _Out_writes_bytes_to_(MAX_SIZE_SECURITY_ID, *pcbSecurityId) BYTE *pbSecurityId, - /* [annotation][out][in] */ - _Inout_ _At_(*pcbSecurityId, _In_range_(>= , MAX_SIZE_SECURITY_ID) _Out_range_(0, MAX_SIZE_SECURITY_ID)) DWORD *pcbSecurityId, - /* [annotation][in] */ - _In_ DWORD_PTR dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE ProcessUrlAction( - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [in] */ DWORD dwAction, - /* [size_is][out] */ __RPC__out_ecount_full(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [unique][in] */ __RPC__in_opt BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicy( - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [in] */ __RPC__in REFGUID guidKey, - /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbPolicy) BYTE **ppPolicy, - /* [out] */ __RPC__out DWORD *pcbPolicy, - /* [in] */ __RPC__in BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetZoneMapping( - /* [in] */ DWORD dwZone, - /* [in] */ __RPC__in LPCWSTR lpszPattern, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetZoneMappings( - /* [in] */ DWORD dwZone, - /* [out] */ __RPC__deref_out_opt IEnumString **ppenumString, - /* [in] */ DWORD dwFlags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetSecurityManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IInternetSecurityManager * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IInternetSecurityManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IInternetSecurityManager * This); - - HRESULT ( STDMETHODCALLTYPE *SetSecuritySite )( - __RPC__in IInternetSecurityManager * This, - /* [unique][in] */ __RPC__in_opt IInternetSecurityMgrSite *pSite); - - HRESULT ( STDMETHODCALLTYPE *GetSecuritySite )( - __RPC__in IInternetSecurityManager * This, - /* [out] */ __RPC__deref_out_opt IInternetSecurityMgrSite **ppSite); - - HRESULT ( STDMETHODCALLTYPE *MapUrlToZone )( - __RPC__in IInternetSecurityManager * This, - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [out] */ __RPC__out DWORD *pdwZone, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetSecurityId )( - __RPC__in IInternetSecurityManager * This, - /* [annotation][in] */ - _In_ LPCWSTR pwszUrl, - /* [annotation][size_is][out] */ - _Out_writes_bytes_to_(MAX_SIZE_SECURITY_ID, *pcbSecurityId) BYTE *pbSecurityId, - /* [annotation][out][in] */ - _Inout_ _At_(*pcbSecurityId, _In_range_(>= , MAX_SIZE_SECURITY_ID) _Out_range_(0, MAX_SIZE_SECURITY_ID)) DWORD *pcbSecurityId, - /* [annotation][in] */ - _In_ DWORD_PTR dwReserved); - - HRESULT ( STDMETHODCALLTYPE *ProcessUrlAction )( - __RPC__in IInternetSecurityManager * This, - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [in] */ DWORD dwAction, - /* [size_is][out] */ __RPC__out_ecount_full(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [unique][in] */ __RPC__in_opt BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *QueryCustomPolicy )( - __RPC__in IInternetSecurityManager * This, - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [in] */ __RPC__in REFGUID guidKey, - /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbPolicy) BYTE **ppPolicy, - /* [out] */ __RPC__out DWORD *pcbPolicy, - /* [in] */ __RPC__in BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *SetZoneMapping )( - __RPC__in IInternetSecurityManager * This, - /* [in] */ DWORD dwZone, - /* [in] */ __RPC__in LPCWSTR lpszPattern, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetZoneMappings )( - __RPC__in IInternetSecurityManager * This, - /* [in] */ DWORD dwZone, - /* [out] */ __RPC__deref_out_opt IEnumString **ppenumString, - /* [in] */ DWORD dwFlags); - - END_INTERFACE - } IInternetSecurityManagerVtbl; - - interface IInternetSecurityManager - { - CONST_VTBL struct IInternetSecurityManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetSecurityManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetSecurityManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetSecurityManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetSecurityManager_SetSecuritySite(This,pSite) \ - ( (This)->lpVtbl -> SetSecuritySite(This,pSite) ) - -#define IInternetSecurityManager_GetSecuritySite(This,ppSite) \ - ( (This)->lpVtbl -> GetSecuritySite(This,ppSite) ) - -#define IInternetSecurityManager_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) \ - ( (This)->lpVtbl -> MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) ) - -#define IInternetSecurityManager_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) \ - ( (This)->lpVtbl -> GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) ) - -#define IInternetSecurityManager_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) \ - ( (This)->lpVtbl -> ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) ) - -#define IInternetSecurityManager_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) \ - ( (This)->lpVtbl -> QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) ) - -#define IInternetSecurityManager_SetZoneMapping(This,dwZone,lpszPattern,dwFlags) \ - ( (This)->lpVtbl -> SetZoneMapping(This,dwZone,lpszPattern,dwFlags) ) - -#define IInternetSecurityManager_GetZoneMappings(This,dwZone,ppenumString,dwFlags) \ - ( (This)->lpVtbl -> GetZoneMappings(This,dwZone,ppenumString,dwFlags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetSecurityManager_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0039 */ -/* [local] */ - -#endif -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -#ifndef _LPINTERNETSECURITYMANANGEREX_DEFINED -#define _LPINTERNETSECURITYMANANGEREX_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0039_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0039_v0_0_s_ifspec; - -#ifndef __IInternetSecurityManagerEx_INTERFACE_DEFINED__ -#define __IInternetSecurityManagerEx_INTERFACE_DEFINED__ - -/* interface IInternetSecurityManagerEx */ -/* [object][unique][helpstring][uuid] */ - -// Please see notes on IInternetSecurityManager::ProcessUrlAction -// This is the wrapper function that most clients will use. -// It figures out the current Policy for the passed in Action, -// and puts up UI if the current Policy indicates that the user -// should be queried. It returns back the Policy which the caller -// will use to determine if the action should be allowed - -EXTERN_C const IID IID_IInternetSecurityManagerEx; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F164EDF1-CC7C-4f0d-9A94-34222625C393") - IInternetSecurityManagerEx : public IInternetSecurityManager - { - public: - virtual HRESULT STDMETHODCALLTYPE ProcessUrlActionEx( - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [in] */ DWORD dwAction, - /* [size_is][out] */ __RPC__out_ecount_full(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ __RPC__in BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwReserved, - /* [out] */ __RPC__out DWORD *pdwOutFlags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetSecurityManagerExVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IInternetSecurityManagerEx * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IInternetSecurityManagerEx * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IInternetSecurityManagerEx * This); - - HRESULT ( STDMETHODCALLTYPE *SetSecuritySite )( - __RPC__in IInternetSecurityManagerEx * This, - /* [unique][in] */ __RPC__in_opt IInternetSecurityMgrSite *pSite); - - HRESULT ( STDMETHODCALLTYPE *GetSecuritySite )( - __RPC__in IInternetSecurityManagerEx * This, - /* [out] */ __RPC__deref_out_opt IInternetSecurityMgrSite **ppSite); - - HRESULT ( STDMETHODCALLTYPE *MapUrlToZone )( - __RPC__in IInternetSecurityManagerEx * This, - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [out] */ __RPC__out DWORD *pdwZone, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetSecurityId )( - __RPC__in IInternetSecurityManagerEx * This, - /* [annotation][in] */ - _In_ LPCWSTR pwszUrl, - /* [annotation][size_is][out] */ - _Out_writes_bytes_to_(MAX_SIZE_SECURITY_ID, *pcbSecurityId) BYTE *pbSecurityId, - /* [annotation][out][in] */ - _Inout_ _At_(*pcbSecurityId, _In_range_(>= , MAX_SIZE_SECURITY_ID) _Out_range_(0, MAX_SIZE_SECURITY_ID)) DWORD *pcbSecurityId, - /* [annotation][in] */ - _In_ DWORD_PTR dwReserved); - - HRESULT ( STDMETHODCALLTYPE *ProcessUrlAction )( - __RPC__in IInternetSecurityManagerEx * This, - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [in] */ DWORD dwAction, - /* [size_is][out] */ __RPC__out_ecount_full(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [unique][in] */ __RPC__in_opt BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *QueryCustomPolicy )( - __RPC__in IInternetSecurityManagerEx * This, - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [in] */ __RPC__in REFGUID guidKey, - /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbPolicy) BYTE **ppPolicy, - /* [out] */ __RPC__out DWORD *pcbPolicy, - /* [in] */ __RPC__in BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *SetZoneMapping )( - __RPC__in IInternetSecurityManagerEx * This, - /* [in] */ DWORD dwZone, - /* [in] */ __RPC__in LPCWSTR lpszPattern, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetZoneMappings )( - __RPC__in IInternetSecurityManagerEx * This, - /* [in] */ DWORD dwZone, - /* [out] */ __RPC__deref_out_opt IEnumString **ppenumString, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *ProcessUrlActionEx )( - __RPC__in IInternetSecurityManagerEx * This, - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [in] */ DWORD dwAction, - /* [size_is][out] */ __RPC__out_ecount_full(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ __RPC__in BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwReserved, - /* [out] */ __RPC__out DWORD *pdwOutFlags); - - END_INTERFACE - } IInternetSecurityManagerExVtbl; - - interface IInternetSecurityManagerEx - { - CONST_VTBL struct IInternetSecurityManagerExVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetSecurityManagerEx_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetSecurityManagerEx_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetSecurityManagerEx_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetSecurityManagerEx_SetSecuritySite(This,pSite) \ - ( (This)->lpVtbl -> SetSecuritySite(This,pSite) ) - -#define IInternetSecurityManagerEx_GetSecuritySite(This,ppSite) \ - ( (This)->lpVtbl -> GetSecuritySite(This,ppSite) ) - -#define IInternetSecurityManagerEx_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) \ - ( (This)->lpVtbl -> MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) ) - -#define IInternetSecurityManagerEx_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) \ - ( (This)->lpVtbl -> GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) ) - -#define IInternetSecurityManagerEx_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) \ - ( (This)->lpVtbl -> ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) ) - -#define IInternetSecurityManagerEx_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) \ - ( (This)->lpVtbl -> QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) ) - -#define IInternetSecurityManagerEx_SetZoneMapping(This,dwZone,lpszPattern,dwFlags) \ - ( (This)->lpVtbl -> SetZoneMapping(This,dwZone,lpszPattern,dwFlags) ) - -#define IInternetSecurityManagerEx_GetZoneMappings(This,dwZone,ppenumString,dwFlags) \ - ( (This)->lpVtbl -> GetZoneMappings(This,dwZone,ppenumString,dwFlags) ) - - -#define IInternetSecurityManagerEx_ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) \ - ( (This)->lpVtbl -> ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetSecurityManagerEx_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0040 */ -/* [local] */ - -#endif -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) -#if (_WIN32_IE >= _WIN32_IE_IE70) -#ifndef _LPINTERNETSECURITYMANANGEREx2_DEFINED -#define _LPINTERNETSECURITYMANANGEREx2_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0040_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0040_v0_0_s_ifspec; - -#ifndef __IInternetSecurityManagerEx2_INTERFACE_DEFINED__ -#define __IInternetSecurityManagerEx2_INTERFACE_DEFINED__ - -/* interface IInternetSecurityManagerEx2 */ -/* [object][unique][helpstring][uuid] */ - - -// Please see notes on IInternetSecurityManager::ProcessUrlAction - - -EXTERN_C const IID IID_IInternetSecurityManagerEx2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F1E50292-A795-4117-8E09-2B560A72AC60") - IInternetSecurityManagerEx2 : public IInternetSecurityManagerEx - { - public: - virtual HRESULT STDMETHODCALLTYPE MapUrlToZoneEx2( - /* [annotation][in] */ - _In_ IUri *pUri, - /* [out] */ __RPC__out DWORD *pdwZone, - /* [in] */ DWORD dwFlags, - /* [annotation][out] */ - _Outptr_opt_ LPWSTR *ppwszMappedUrl, - /* [annotation][out] */ - _Out_opt_ DWORD *pdwOutFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE ProcessUrlActionEx2( - /* [annotation][in] */ - _In_ IUri *pUri, - /* [in] */ DWORD dwAction, - /* [size_is][out] */ __RPC__out_ecount_full(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [unique][in] */ __RPC__in_opt BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD_PTR dwReserved, - /* [out] */ __RPC__out DWORD *pdwOutFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSecurityIdEx2( - /* [annotation][in] */ - _In_ IUri *pUri, - /* [annotation][size_is][out] */ - _Out_writes_bytes_to_(MAX_SIZE_SECURITY_ID, *pcbSecurityId) BYTE *pbSecurityId, - /* [annotation][out][in] */ - _Inout_ _At_(*pcbSecurityId, _In_range_(>= , MAX_SIZE_SECURITY_ID) _Out_range_(0, MAX_SIZE_SECURITY_ID)) DWORD *pcbSecurityId, - /* [annotation][in] */ - _In_ DWORD_PTR dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicyEx2( - /* [annotation][in] */ - _In_ IUri *pUri, - /* [in] */ __RPC__in REFGUID guidKey, - /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbPolicy) BYTE **ppPolicy, - /* [out] */ __RPC__out DWORD *pcbPolicy, - /* [in] */ __RPC__in BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD_PTR dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetSecurityManagerEx2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IInternetSecurityManagerEx2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IInternetSecurityManagerEx2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetSecuritySite )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [unique][in] */ __RPC__in_opt IInternetSecurityMgrSite *pSite); - - HRESULT ( STDMETHODCALLTYPE *GetSecuritySite )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [out] */ __RPC__deref_out_opt IInternetSecurityMgrSite **ppSite); - - HRESULT ( STDMETHODCALLTYPE *MapUrlToZone )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [out] */ __RPC__out DWORD *pdwZone, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetSecurityId )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [annotation][in] */ - _In_ LPCWSTR pwszUrl, - /* [annotation][size_is][out] */ - _Out_writes_bytes_to_(MAX_SIZE_SECURITY_ID, *pcbSecurityId) BYTE *pbSecurityId, - /* [annotation][out][in] */ - _Inout_ _At_(*pcbSecurityId, _In_range_(>= , MAX_SIZE_SECURITY_ID) _Out_range_(0, MAX_SIZE_SECURITY_ID)) DWORD *pcbSecurityId, - /* [annotation][in] */ - _In_ DWORD_PTR dwReserved); - - HRESULT ( STDMETHODCALLTYPE *ProcessUrlAction )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [in] */ DWORD dwAction, - /* [size_is][out] */ __RPC__out_ecount_full(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [unique][in] */ __RPC__in_opt BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *QueryCustomPolicy )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [in] */ __RPC__in REFGUID guidKey, - /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbPolicy) BYTE **ppPolicy, - /* [out] */ __RPC__out DWORD *pcbPolicy, - /* [in] */ __RPC__in BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *SetZoneMapping )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [in] */ DWORD dwZone, - /* [in] */ __RPC__in LPCWSTR lpszPattern, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetZoneMappings )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [in] */ DWORD dwZone, - /* [out] */ __RPC__deref_out_opt IEnumString **ppenumString, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *ProcessUrlActionEx )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [in] */ __RPC__in LPCWSTR pwszUrl, - /* [in] */ DWORD dwAction, - /* [size_is][out] */ __RPC__out_ecount_full(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ __RPC__in BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwReserved, - /* [out] */ __RPC__out DWORD *pdwOutFlags); - - HRESULT ( STDMETHODCALLTYPE *MapUrlToZoneEx2 )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [annotation][in] */ - _In_ IUri *pUri, - /* [out] */ __RPC__out DWORD *pdwZone, - /* [in] */ DWORD dwFlags, - /* [annotation][out] */ - _Outptr_opt_ LPWSTR *ppwszMappedUrl, - /* [annotation][out] */ - _Out_opt_ DWORD *pdwOutFlags); - - HRESULT ( STDMETHODCALLTYPE *ProcessUrlActionEx2 )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [annotation][in] */ - _In_ IUri *pUri, - /* [in] */ DWORD dwAction, - /* [size_is][out] */ __RPC__out_ecount_full(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [unique][in] */ __RPC__in_opt BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD_PTR dwReserved, - /* [out] */ __RPC__out DWORD *pdwOutFlags); - - HRESULT ( STDMETHODCALLTYPE *GetSecurityIdEx2 )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [annotation][in] */ - _In_ IUri *pUri, - /* [annotation][size_is][out] */ - _Out_writes_bytes_to_(MAX_SIZE_SECURITY_ID, *pcbSecurityId) BYTE *pbSecurityId, - /* [annotation][out][in] */ - _Inout_ _At_(*pcbSecurityId, _In_range_(>= , MAX_SIZE_SECURITY_ID) _Out_range_(0, MAX_SIZE_SECURITY_ID)) DWORD *pcbSecurityId, - /* [annotation][in] */ - _In_ DWORD_PTR dwReserved); - - HRESULT ( STDMETHODCALLTYPE *QueryCustomPolicyEx2 )( - __RPC__in IInternetSecurityManagerEx2 * This, - /* [annotation][in] */ - _In_ IUri *pUri, - /* [in] */ __RPC__in REFGUID guidKey, - /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbPolicy) BYTE **ppPolicy, - /* [out] */ __RPC__out DWORD *pcbPolicy, - /* [in] */ __RPC__in BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD_PTR dwReserved); - - END_INTERFACE - } IInternetSecurityManagerEx2Vtbl; - - interface IInternetSecurityManagerEx2 - { - CONST_VTBL struct IInternetSecurityManagerEx2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetSecurityManagerEx2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetSecurityManagerEx2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetSecurityManagerEx2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetSecurityManagerEx2_SetSecuritySite(This,pSite) \ - ( (This)->lpVtbl -> SetSecuritySite(This,pSite) ) - -#define IInternetSecurityManagerEx2_GetSecuritySite(This,ppSite) \ - ( (This)->lpVtbl -> GetSecuritySite(This,ppSite) ) - -#define IInternetSecurityManagerEx2_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) \ - ( (This)->lpVtbl -> MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) ) - -#define IInternetSecurityManagerEx2_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) \ - ( (This)->lpVtbl -> GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) ) - -#define IInternetSecurityManagerEx2_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) \ - ( (This)->lpVtbl -> ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) ) - -#define IInternetSecurityManagerEx2_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) \ - ( (This)->lpVtbl -> QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) ) - -#define IInternetSecurityManagerEx2_SetZoneMapping(This,dwZone,lpszPattern,dwFlags) \ - ( (This)->lpVtbl -> SetZoneMapping(This,dwZone,lpszPattern,dwFlags) ) - -#define IInternetSecurityManagerEx2_GetZoneMappings(This,dwZone,ppenumString,dwFlags) \ - ( (This)->lpVtbl -> GetZoneMappings(This,dwZone,ppenumString,dwFlags) ) - - -#define IInternetSecurityManagerEx2_ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) \ - ( (This)->lpVtbl -> ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) ) - - -#define IInternetSecurityManagerEx2_MapUrlToZoneEx2(This,pUri,pdwZone,dwFlags,ppwszMappedUrl,pdwOutFlags) \ - ( (This)->lpVtbl -> MapUrlToZoneEx2(This,pUri,pdwZone,dwFlags,ppwszMappedUrl,pdwOutFlags) ) - -#define IInternetSecurityManagerEx2_ProcessUrlActionEx2(This,pUri,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) \ - ( (This)->lpVtbl -> ProcessUrlActionEx2(This,pUri,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) ) - -#define IInternetSecurityManagerEx2_GetSecurityIdEx2(This,pUri,pbSecurityId,pcbSecurityId,dwReserved) \ - ( (This)->lpVtbl -> GetSecurityIdEx2(This,pUri,pbSecurityId,pcbSecurityId,dwReserved) ) - -#define IInternetSecurityManagerEx2_QueryCustomPolicyEx2(This,pUri,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) \ - ( (This)->lpVtbl -> QueryCustomPolicyEx2(This,pUri,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetSecurityManagerEx2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0041 */ -/* [local] */ - -#endif -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0041_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0041_v0_0_s_ifspec; - -#ifndef __IZoneIdentifier_INTERFACE_DEFINED__ -#define __IZoneIdentifier_INTERFACE_DEFINED__ - -/* interface IZoneIdentifier */ -/* [unique][uuid][object] */ - - -EXTERN_C const IID IID_IZoneIdentifier; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("cd45f185-1b21-48e2-967b-ead743a8914e") - IZoneIdentifier : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetId( - /* [out] */ __RPC__out DWORD *pdwZone) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetId( - /* [in] */ DWORD dwZone) = 0; - - virtual HRESULT STDMETHODCALLTYPE Remove( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IZoneIdentifierVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IZoneIdentifier * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IZoneIdentifier * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IZoneIdentifier * This); - - HRESULT ( STDMETHODCALLTYPE *GetId )( - __RPC__in IZoneIdentifier * This, - /* [out] */ __RPC__out DWORD *pdwZone); - - HRESULT ( STDMETHODCALLTYPE *SetId )( - __RPC__in IZoneIdentifier * This, - /* [in] */ DWORD dwZone); - - HRESULT ( STDMETHODCALLTYPE *Remove )( - __RPC__in IZoneIdentifier * This); - - END_INTERFACE - } IZoneIdentifierVtbl; - - interface IZoneIdentifier - { - CONST_VTBL struct IZoneIdentifierVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IZoneIdentifier_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IZoneIdentifier_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IZoneIdentifier_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IZoneIdentifier_GetId(This,pdwZone) \ - ( (This)->lpVtbl -> GetId(This,pdwZone) ) - -#define IZoneIdentifier_SetId(This,dwZone) \ - ( (This)->lpVtbl -> SetId(This,dwZone) ) - -#define IZoneIdentifier_Remove(This) \ - ( (This)->lpVtbl -> Remove(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IZoneIdentifier_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0042 */ -/* [local] */ - -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) -#if (_WIN32_IE >= _WIN32_IE_WIN10) - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0042_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0042_v0_0_s_ifspec; - -#ifndef __IZoneIdentifier2_INTERFACE_DEFINED__ -#define __IZoneIdentifier2_INTERFACE_DEFINED__ - -/* interface IZoneIdentifier2 */ -/* [unique][uuid][object] */ - - -EXTERN_C const IID IID_IZoneIdentifier2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("EB5E760C-09EF-45C0-B510-70830CE31E6A") - IZoneIdentifier2 : public IZoneIdentifier - { - public: - virtual HRESULT STDMETHODCALLTYPE GetLastWriterPackageFamilyName( - /* [out] */ __RPC__deref_out_opt LPWSTR *packageFamilyName) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetLastWriterPackageFamilyName( - /* [in] */ __RPC__in LPCWSTR packageFamilyName) = 0; - - virtual HRESULT STDMETHODCALLTYPE RemoveLastWriterPackageFamilyName( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAppZoneId( - /* [out] */ __RPC__out DWORD *zone) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAppZoneId( - /* [in] */ DWORD zone) = 0; - - virtual HRESULT STDMETHODCALLTYPE RemoveAppZoneId( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IZoneIdentifier2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IZoneIdentifier2 * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IZoneIdentifier2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IZoneIdentifier2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetId )( - __RPC__in IZoneIdentifier2 * This, - /* [out] */ __RPC__out DWORD *pdwZone); - - HRESULT ( STDMETHODCALLTYPE *SetId )( - __RPC__in IZoneIdentifier2 * This, - /* [in] */ DWORD dwZone); - - HRESULT ( STDMETHODCALLTYPE *Remove )( - __RPC__in IZoneIdentifier2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetLastWriterPackageFamilyName )( - __RPC__in IZoneIdentifier2 * This, - /* [out] */ __RPC__deref_out_opt LPWSTR *packageFamilyName); - - HRESULT ( STDMETHODCALLTYPE *SetLastWriterPackageFamilyName )( - __RPC__in IZoneIdentifier2 * This, - /* [in] */ __RPC__in LPCWSTR packageFamilyName); - - HRESULT ( STDMETHODCALLTYPE *RemoveLastWriterPackageFamilyName )( - __RPC__in IZoneIdentifier2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetAppZoneId )( - __RPC__in IZoneIdentifier2 * This, - /* [out] */ __RPC__out DWORD *zone); - - HRESULT ( STDMETHODCALLTYPE *SetAppZoneId )( - __RPC__in IZoneIdentifier2 * This, - /* [in] */ DWORD zone); - - HRESULT ( STDMETHODCALLTYPE *RemoveAppZoneId )( - __RPC__in IZoneIdentifier2 * This); - - END_INTERFACE - } IZoneIdentifier2Vtbl; - - interface IZoneIdentifier2 - { - CONST_VTBL struct IZoneIdentifier2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IZoneIdentifier2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IZoneIdentifier2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IZoneIdentifier2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IZoneIdentifier2_GetId(This,pdwZone) \ - ( (This)->lpVtbl -> GetId(This,pdwZone) ) - -#define IZoneIdentifier2_SetId(This,dwZone) \ - ( (This)->lpVtbl -> SetId(This,dwZone) ) - -#define IZoneIdentifier2_Remove(This) \ - ( (This)->lpVtbl -> Remove(This) ) - - -#define IZoneIdentifier2_GetLastWriterPackageFamilyName(This,packageFamilyName) \ - ( (This)->lpVtbl -> GetLastWriterPackageFamilyName(This,packageFamilyName) ) - -#define IZoneIdentifier2_SetLastWriterPackageFamilyName(This,packageFamilyName) \ - ( (This)->lpVtbl -> SetLastWriterPackageFamilyName(This,packageFamilyName) ) - -#define IZoneIdentifier2_RemoveLastWriterPackageFamilyName(This) \ - ( (This)->lpVtbl -> RemoveLastWriterPackageFamilyName(This) ) - -#define IZoneIdentifier2_GetAppZoneId(This,zone) \ - ( (This)->lpVtbl -> GetAppZoneId(This,zone) ) - -#define IZoneIdentifier2_SetAppZoneId(This,zone) \ - ( (This)->lpVtbl -> SetAppZoneId(This,zone) ) - -#define IZoneIdentifier2_RemoveAppZoneId(This) \ - ( (This)->lpVtbl -> RemoveAppZoneId(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IZoneIdentifier2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0043 */ -/* [local] */ - -#endif //(_WIN32_IE >= _WIN32_IE_WIN10 -#ifndef _LPINTERNETHOSTSECURITYMANANGER_DEFINED -#define _LPINTERNETHOSTSECURITYMANANGER_DEFINED -//This is the interface MSHTML exposes to its clients -//The clients need not pass in a URL to these functions -//since MSHTML maintains the notion of the current URL - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0043_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0043_v0_0_s_ifspec; - -#ifndef __IInternetHostSecurityManager_INTERFACE_DEFINED__ -#define __IInternetHostSecurityManager_INTERFACE_DEFINED__ - -/* interface IInternetHostSecurityManager */ -/* [unique][helpstring][uuid][object][local] */ - -// Please see notes on IInternetSecurityManager::ProcessUrlAction - -EXTERN_C const IID IID_IInternetHostSecurityManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3af280b6-cb3f-11d0-891e-00c04fb6bfc4") - IInternetHostSecurityManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetSecurityId( - /* [annotation][size_is][out] */ - _Out_writes_(*pcbSecurityId) BYTE *pbSecurityId, - /* [annotation][out][in] */ - _Inout_ _Deref_in_range_(MAX_SIZE_SECURITY_ID, UINT_MAX) _Deref_out_range_(0, MAX_SIZE_SECURITY_ID) DWORD *pcbSecurityId, - /* [in] */ DWORD_PTR dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE ProcessUrlAction( - /* [in] */ DWORD dwAction, - /* [annotation][size_is][out] */ - _Out_writes_all_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [annotation][in] */ - _In_reads_opt_(cbContext) BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicy( - /* [in] */ REFGUID guidKey, - /* [annotation][size_is][size_is][out] */ - _Outptr_result_buffer_all_maybenull_(*pcbPolicy) BYTE **ppPolicy, - /* [annotation][out] */ - _Out_ DWORD *pcbPolicy, - /* [annotation][in] */ - _In_reads_(cbContext) BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetHostSecurityManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetHostSecurityManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetHostSecurityManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetHostSecurityManager * This); - - HRESULT ( STDMETHODCALLTYPE *GetSecurityId )( - IInternetHostSecurityManager * This, - /* [annotation][size_is][out] */ - _Out_writes_(*pcbSecurityId) BYTE *pbSecurityId, - /* [annotation][out][in] */ - _Inout_ _Deref_in_range_(MAX_SIZE_SECURITY_ID, UINT_MAX) _Deref_out_range_(0, MAX_SIZE_SECURITY_ID) DWORD *pcbSecurityId, - /* [in] */ DWORD_PTR dwReserved); - - HRESULT ( STDMETHODCALLTYPE *ProcessUrlAction )( - IInternetHostSecurityManager * This, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][out] */ - _Out_writes_all_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [annotation][in] */ - _In_reads_opt_(cbContext) BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *QueryCustomPolicy )( - IInternetHostSecurityManager * This, - /* [in] */ REFGUID guidKey, - /* [annotation][size_is][size_is][out] */ - _Outptr_result_buffer_all_maybenull_(*pcbPolicy) BYTE **ppPolicy, - /* [annotation][out] */ - _Out_ DWORD *pcbPolicy, - /* [annotation][in] */ - _In_reads_(cbContext) BYTE *pContext, - /* [in] */ DWORD cbContext, - /* [in] */ DWORD dwReserved); - - END_INTERFACE - } IInternetHostSecurityManagerVtbl; - - interface IInternetHostSecurityManager - { - CONST_VTBL struct IInternetHostSecurityManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetHostSecurityManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetHostSecurityManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetHostSecurityManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetHostSecurityManager_GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) \ - ( (This)->lpVtbl -> GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) ) - -#define IInternetHostSecurityManager_ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) \ - ( (This)->lpVtbl -> ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) ) - -#define IInternetHostSecurityManager_QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) \ - ( (This)->lpVtbl -> QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetHostSecurityManager_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0044 */ -/* [local] */ - -#endif - -// The zone manager maintains policies for a set of standard actions. -// These actions are identified by integral values (called action indexes) -// specified below. - -// Minimum legal value for an action -#define URLACTION_MIN 0x00001000 - -#define URLACTION_DOWNLOAD_MIN 0x00001000 -#define URLACTION_DOWNLOAD_SIGNED_ACTIVEX 0x00001001 -#define URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX 0x00001004 -#define URLACTION_DOWNLOAD_CURR_MAX 0x00001004 -#define URLACTION_DOWNLOAD_MAX 0x000011FF - -#define URLACTION_ACTIVEX_MIN 0x00001200 -#define URLACTION_ACTIVEX_RUN 0x00001200 -#define URLPOLICY_ACTIVEX_CHECK_LIST 0x00010000 -#define URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY 0x00001201 // aggregate next four -#define URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY 0x00001202 // -#define URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY 0x00001203 // -#define URLACTION_SCRIPT_OVERRIDE_SAFETY 0x00001401 // -#define URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY 0x00001204 // -#define URLACTION_ACTIVEX_TREATASUNTRUSTED 0x00001205 -#define URLACTION_ACTIVEX_NO_WEBOC_SCRIPT 0x00001206 -#define URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION 0x00001207 -#define URLACTION_ACTIVEX_OVERRIDE_OPTIN 0x00001208 -#define URLACTION_ACTIVEX_SCRIPTLET_RUN 0x00001209 -#define URLACTION_ACTIVEX_DYNSRC_VIDEO_AND_ANIMATION 0x0000120A // -#define URLACTION_ACTIVEX_OVERRIDE_DOMAINLIST 0x0000120B -#define URLACTION_ACTIVEX_ALLOW_TDC 0x0000120C -#define URLACTION_ACTIVEX_CURR_MAX 0x0000120C -#define URLACTION_ACTIVEX_MAX 0x000013ff - -#define URLACTION_SCRIPT_MIN 0x00001400 -#define URLACTION_SCRIPT_RUN 0x00001400 -#define URLACTION_SCRIPT_JAVA_USE 0x00001402 -#define URLACTION_SCRIPT_SAFE_ACTIVEX 0x00001405 -#define URLACTION_CROSS_DOMAIN_DATA 0x00001406 -#define URLACTION_SCRIPT_PASTE 0x00001407 -#define URLACTION_ALLOW_XDOMAIN_SUBFRAME_RESIZE 0x00001408 -#define URLACTION_SCRIPT_XSSFILTER 0x00001409 -#define URLACTION_SCRIPT_NAVIGATE 0x0000140A -#define URLACTION_PLUGGABLE_PROTOCOL_XHR 0x0000140B -#define URLACTION_ALLOW_VBSCRIPT_IE 0x0000140C -#define URLACTION_SCRIPT_CURR_MAX 0x0000140C -#define URLACTION_SCRIPT_MAX 0x000015ff - -#define URLACTION_HTML_MIN 0x00001600 -#define URLACTION_HTML_SUBMIT_FORMS 0x00001601 // aggregate next two -#define URLACTION_HTML_SUBMIT_FORMS_FROM 0x00001602 // -#define URLACTION_HTML_SUBMIT_FORMS_TO 0x00001603 // -#define URLACTION_HTML_FONT_DOWNLOAD 0x00001604 -#define URLACTION_HTML_JAVA_RUN 0x00001605 // derive from Java custom policy -#define URLACTION_HTML_USERDATA_SAVE 0x00001606 -#define URLACTION_HTML_SUBFRAME_NAVIGATE 0x00001607 -#define URLACTION_HTML_META_REFRESH 0x00001608 -#define URLACTION_HTML_MIXED_CONTENT 0x00001609 -#define URLACTION_HTML_INCLUDE_FILE_PATH 0x0000160A -#define URLACTION_HTML_ALLOW_INJECTED_DYNAMIC_HTML 0x0000160B -#define URLACTION_HTML_REQUIRE_UTF8_DOCUMENT_CODEPAGE 0x0000160C -#define URLACTION_HTML_ALLOW_CROSS_DOMAIN_CANVAS 0x0000160D -#define URLACTION_HTML_ALLOW_WINDOW_CLOSE 0x0000160E -#define URLACTION_HTML_ALLOW_CROSS_DOMAIN_WEBWORKER 0x0000160F -#define URLACTION_HTML_ALLOW_CROSS_DOMAIN_TEXTTRACK 0x00001610 -#define URLACTION_HTML_ALLOW_INDEXEDDB 0x00001611 -#define URLACTION_HTML_MAX 0x000017ff - -#define URLACTION_SHELL_MIN 0x00001800 -#define URLACTION_SHELL_INSTALL_DTITEMS 0x00001800 -#define URLACTION_SHELL_MOVE_OR_COPY 0x00001802 -#define URLACTION_SHELL_FILE_DOWNLOAD 0x00001803 -#define URLACTION_SHELL_VERB 0x00001804 -#define URLACTION_SHELL_WEBVIEW_VERB 0x00001805 -#define URLACTION_SHELL_SHELLEXECUTE 0x00001806 -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -#define URLACTION_SHELL_EXECUTE_HIGHRISK 0x00001806 -#define URLACTION_SHELL_EXECUTE_MODRISK 0x00001807 -#define URLACTION_SHELL_EXECUTE_LOWRISK 0x00001808 -#define URLACTION_SHELL_POPUPMGR 0x00001809 -#define URLACTION_SHELL_RTF_OBJECTS_LOAD 0x0000180A -#define URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY 0x0000180B -#define URLACTION_SHELL_EXTENSIONSECURITY 0x0000180C -#define URLACTION_SHELL_SECURE_DRAGSOURCE 0x0000180D -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) -#if (_WIN32_IE >= _WIN32_IE_WIN7) -#define URLACTION_SHELL_REMOTEQUERY 0x0000180E -#define URLACTION_SHELL_PREVIEW 0x0000180F -#define URLACTION_SHELL_SHARE 0x00001810 -#define URLACTION_SHELL_ALLOW_CROSS_SITE_SHARE 0x00001811 -#endif //(_WIN32_IE >= _WIN32_IE_WIN7) -#define URLACTION_SHELL_TOCTOU_RISK 0x00001812 -#define URLACTION_SHELL_CURR_MAX 0x00001812 -#define URLACTION_SHELL_MAX 0x000019ff - -#define URLACTION_NETWORK_MIN 0x00001A00 - -#define URLACTION_CREDENTIALS_USE 0x00001A00 -#define URLPOLICY_CREDENTIALS_SILENT_LOGON_OK 0x00000000 -#define URLPOLICY_CREDENTIALS_MUST_PROMPT_USER 0x00010000 -#define URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT 0x00020000 -#define URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY 0x00030000 - -#define URLACTION_AUTHENTICATE_CLIENT 0x00001A01 -#define URLPOLICY_AUTHENTICATE_CLEARTEXT_OK 0x00000000 -#define URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE 0x00010000 -#define URLPOLICY_AUTHENTICATE_MUTUAL_ONLY 0x00030000 - - -#define URLACTION_COOKIES 0x00001A02 -#define URLACTION_COOKIES_SESSION 0x00001A03 - -#define URLACTION_CLIENT_CERT_PROMPT 0x00001A04 - -#define URLACTION_COOKIES_THIRD_PARTY 0x00001A05 -#define URLACTION_COOKIES_SESSION_THIRD_PARTY 0x00001A06 - -#define URLACTION_COOKIES_ENABLED 0x00001A10 - -#define URLACTION_NETWORK_CURR_MAX 0x00001A10 -#define URLACTION_NETWORK_MAX 0x00001Bff - - -#define URLACTION_JAVA_MIN 0x00001C00 -#define URLACTION_JAVA_PERMISSIONS 0x00001C00 -#define URLPOLICY_JAVA_PROHIBIT 0x00000000 -#define URLPOLICY_JAVA_HIGH 0x00010000 -#define URLPOLICY_JAVA_MEDIUM 0x00020000 -#define URLPOLICY_JAVA_LOW 0x00030000 -#define URLPOLICY_JAVA_CUSTOM 0x00800000 -#define URLACTION_JAVA_CURR_MAX 0x00001C00 -#define URLACTION_JAVA_MAX 0x00001Cff - - -// The following Infodelivery actions should have no default policies -// in the registry. They assume that no default policy means fall -// back to the global restriction. If an admin sets a policy per -// zone, then it overrides the global restriction. - -#define URLACTION_INFODELIVERY_MIN 0x00001D00 -#define URLACTION_INFODELIVERY_NO_ADDING_CHANNELS 0x00001D00 -#define URLACTION_INFODELIVERY_NO_EDITING_CHANNELS 0x00001D01 -#define URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS 0x00001D02 -#define URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS 0x00001D03 -#define URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS 0x00001D04 -#define URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS 0x00001D05 -#define URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING 0x00001D06 -#define URLACTION_INFODELIVERY_CURR_MAX 0x00001D06 -#define URLACTION_INFODELIVERY_MAX 0x00001Dff -#define URLACTION_CHANNEL_SOFTDIST_MIN 0x00001E00 -#define URLACTION_CHANNEL_SOFTDIST_PERMISSIONS 0x00001E05 -#define URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT 0x00010000 -#define URLPOLICY_CHANNEL_SOFTDIST_PRECACHE 0x00020000 -#define URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL 0x00030000 -#define URLACTION_CHANNEL_SOFTDIST_MAX 0x00001Eff -#if (_WIN32_IE >= _WIN32_IE_IE80) -#define URLACTION_DOTNET_USERCONTROLS 0x00002005 -#endif //(_WIN32_IE >= _WIN32_IE_IE80) -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -#define URLACTION_BEHAVIOR_MIN 0x00002000 -#define URLACTION_BEHAVIOR_RUN 0x00002000 -#define URLPOLICY_BEHAVIOR_CHECK_LIST 0x00010000 - -// The following actions correspond to the Feature options above. -// However, they are NOT in the same order. -#define URLACTION_FEATURE_MIN 0x00002100 -#define URLACTION_FEATURE_MIME_SNIFFING 0x00002100 -#define URLACTION_FEATURE_ZONE_ELEVATION 0x00002101 -#define URLACTION_FEATURE_WINDOW_RESTRICTIONS 0x00002102 -#define URLACTION_FEATURE_SCRIPT_STATUS_BAR 0x00002103 -#define URLACTION_FEATURE_FORCE_ADDR_AND_STATUS 0x00002104 -#define URLACTION_FEATURE_BLOCK_INPUT_PROMPTS 0x00002105 -#define URLACTION_FEATURE_DATA_BINDING 0x00002106 -#define URLACTION_FEATURE_CROSSDOMAIN_FOCUS_CHANGE 0x00002107 - -#define URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN 0x00002200 -#define URLACTION_AUTOMATIC_DOWNLOAD_UI 0x00002200 -#define URLACTION_AUTOMATIC_ACTIVEX_UI 0x00002201 - -#define URLACTION_ALLOW_RESTRICTEDPROTOCOLS 0x00002300 - -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) -#if (_WIN32_IE >= _WIN32_IE_IE70) -// Whether to do the Anti-Phishing check. -#define URLACTION_ALLOW_APEVALUATION 0x00002301 -#define URLACTION_ALLOW_XHR_EVALUATION 0x00002302 - -// The following ExpressAPP and XPS actions are trumped by registry in -// case of Internet Explorer upgrade from IE 6.0 which honors registry. -#define URLACTION_WINDOWS_BROWSER_APPLICATIONS 0x00002400 -#define URLACTION_XPS_DOCUMENTS 0x00002401 -#define URLACTION_LOOSE_XAML 0x00002402 -#define URLACTION_LOWRIGHTS 0x00002500 -// The following action belong to WinFX Bootstrapper -#define URLACTION_WINFX_SETUP 0x00002600 - -#define URLACTION_INPRIVATE_BLOCKING 0x00002700 -#endif //(_WIN32_IE >= _WIN32_IE_IE70) - -#define URLACTION_ALLOW_AUDIO_VIDEO 0x00002701 - - -#define URLACTION_ALLOW_ACTIVEX_FILTERING 0x00002702 - - -#define URLACTION_ALLOW_STRUCTURED_STORAGE_SNIFFING 0x00002703 - - -#define URLACTION_ALLOW_AUDIO_VIDEO_PLUGINS 0x00002704 - -// The following two URLACTIONs each have as their context parameter a string that is the destination URI. -#define URLACTION_ALLOW_ZONE_ELEVATION_VIA_OPT_OUT 0x00002705 -#define URLACTION_ALLOW_ZONE_ELEVATION_OPT_OUT_ADDITION 0x00002706 - - -#define URLACTION_ALLOW_CROSSDOMAIN_DROP_WITHIN_WINDOW 0x00002708 -#define URLACTION_ALLOW_CROSSDOMAIN_DROP_ACROSS_WINDOWS 0x00002709 - - -#define URLACTION_ALLOW_CROSSDOMAIN_APPCACHE_MANIFEST 0x0000270A - - -#define URLACTION_ALLOW_RENDER_LEGACY_DXTFILTERS 0x0000270B - - -#define URLACTION_ALLOW_ANTIMALWARE_SCANNING_OF_ACTIVEX 0x0000270C - - -#define URLACTION_ALLOW_CSS_EXPRESSIONS 0x0000270D - -// For each action specified above the system maintains -// a set of policies for the action. -// The only policies supported currently are permissions (i.e. is something allowed) -// and logging status. -// IMPORTANT: If you are defining your own policies don't overload the meaning of the -// loword of the policy. You can use the hiword to store any policy bits which are only -// meaningful to your action. -// For an example of how to do this look at the URLPOLICY_JAVA above - -// Permissions -#define URLPOLICY_ALLOW 0x00 -#define URLPOLICY_QUERY 0x01 -#define URLPOLICY_DISALLOW 0x03 - -// Notifications are not done when user already queried. -#define URLPOLICY_NOTIFY_ON_ALLOW 0x10 -#define URLPOLICY_NOTIFY_ON_DISALLOW 0x20 - -// Logging is done regardless of whether user was queried. -#define URLPOLICY_LOG_ON_ALLOW 0x40 -#define URLPOLICY_LOG_ON_DISALLOW 0x80 - -#define URLPOLICY_MASK_PERMISSIONS 0x0f -#define GetUrlPolicyPermissions(dw) (dw & URLPOLICY_MASK_PERMISSIONS) -#define SetUrlPolicyPermissions(dw,dw2) ((dw) = ((dw) & ~(URLPOLICY_MASK_PERMISSIONS)) | (dw2)) - - -#define URLPOLICY_DONTCHECKDLGBOX 0x100 -// The ordinal #'s that define the predefined zones internet explorer knows about. -// When we support user-defined zones their zone numbers should be between -// URLZONE_USER_MIN and URLZONE_USER_MAX -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -// Custom policy to query whether the local machine zone -// has been unlocked for current document. -EXTERN_C const GUID GUID_CUSTOM_LOCALMACHINEZONEUNLOCKED; -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) -#ifndef _LPINTERNETZONEMANAGER_DEFINED -#define _LPINTERNETZONEMANAGER_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0044_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0044_v0_0_s_ifspec; - -#ifndef __IInternetZoneManager_INTERFACE_DEFINED__ -#define __IInternetZoneManager_INTERFACE_DEFINED__ - -/* interface IInternetZoneManager */ -/* [unique][helpstring][uuid][object][local] */ - -typedef /* [unique] */ IInternetZoneManager *LPURLZONEMANAGER; - -typedef -enum tagURLZONE - { - URLZONE_INVALID = -1, - URLZONE_PREDEFINED_MIN = 0, - URLZONE_LOCAL_MACHINE = 0, - URLZONE_INTRANET = ( URLZONE_LOCAL_MACHINE + 1 ) , - URLZONE_TRUSTED = ( URLZONE_INTRANET + 1 ) , - URLZONE_INTERNET = ( URLZONE_TRUSTED + 1 ) , - URLZONE_UNTRUSTED = ( URLZONE_INTERNET + 1 ) , - URLZONE_PREDEFINED_MAX = 999, - URLZONE_USER_MIN = 1000, - URLZONE_USER_MAX = 10000 - } URLZONE; - -// Enhanced Security Configuration zone mapping flag for IInternetSecurityManager::SetZoneMapping -#define URLZONE_ESC_FLAG 0x100 -typedef -enum tagURLTEMPLATE - { - URLTEMPLATE_CUSTOM = 0, - URLTEMPLATE_PREDEFINED_MIN = 0x10000, - URLTEMPLATE_LOW = 0x10000, - URLTEMPLATE_MEDLOW = 0x10500, - URLTEMPLATE_MEDIUM = 0x11000, - URLTEMPLATE_MEDHIGH = 0x11500, - URLTEMPLATE_HIGH = 0x12000, - URLTEMPLATE_PREDEFINED_MAX = 0x20000 - } URLTEMPLATE; - - -enum __MIDL_IInternetZoneManager_0001 - { - MAX_ZONE_PATH = 260, - MAX_ZONE_DESCRIPTION = 200 - } ; -typedef /* [public] */ -enum __MIDL_IInternetZoneManager_0002 - { - ZAFLAGS_CUSTOM_EDIT = 0x1, - ZAFLAGS_ADD_SITES = 0x2, - ZAFLAGS_REQUIRE_VERIFICATION = 0x4, - ZAFLAGS_INCLUDE_PROXY_OVERRIDE = 0x8, - ZAFLAGS_INCLUDE_INTRANET_SITES = 0x10, - ZAFLAGS_NO_UI = 0x20, - ZAFLAGS_SUPPORTS_VERIFICATION = 0x40, - ZAFLAGS_UNC_AS_INTRANET = 0x80, - ZAFLAGS_DETECT_INTRANET = 0x100, - ZAFLAGS_USE_LOCKED_ZONES = 0x10000, - ZAFLAGS_VERIFY_TEMPLATE_SETTINGS = 0x20000, - ZAFLAGS_NO_CACHE = 0x40000 - } ZAFLAGS; - -typedef struct _ZONEATTRIBUTES - { - ULONG cbSize; - WCHAR szDisplayName[ 260 ]; - WCHAR szDescription[ 200 ]; - WCHAR szIconPath[ 260 ]; - DWORD dwTemplateMinLevel; - DWORD dwTemplateRecommended; - DWORD dwTemplateCurrentLevel; - DWORD dwFlags; - } ZONEATTRIBUTES; - -typedef struct _ZONEATTRIBUTES *LPZONEATTRIBUTES; - -// Gets the zone attributes (information in registry other than actual security -// policies associated with the zone). Zone attributes are fixed as: -// Sets the zone attributes (information in registry other than actual security -// policies associated with the zone). Zone attributes as above. -// Returns S_OK or ??? if failed to write the zone attributes. -/* Registry Flags - - When reading, default behavior is: - If HKLM allows override and HKCU value exists - Then use HKCU value - Else use HKLM value - When writing, default behavior is same as HKCU - If HKLM allows override - Then Write to HKCU - Else Fail -*/ -typedef -enum _URLZONEREG - { - URLZONEREG_DEFAULT = 0, - URLZONEREG_HKLM = ( URLZONEREG_DEFAULT + 1 ) , - URLZONEREG_HKCU = ( URLZONEREG_HKLM + 1 ) - } URLZONEREG; - -// Gets a named custom policy associated with a zone; -// e.g. the Java VM settings can be defined with a unique key such as 'Java'. -// Custom policy support is intended to allow extensibility from the predefined -// set of policies that IE4 has built in. -// -// pwszKey is the string name designating the custom policy. Components are -// responsible for having unique names. -// ppPolicy is the callee allocated buffer for the policy byte blob; caller is -// responsible for freeing this buffer eventually. -// pcbPolicy is the size of the byte blob returned. -// dwRegFlags determines how registry is accessed (see above). -// Returns S_OK if key is found and buffer allocated; ??? if key is not found (no buffer alloced). -// Sets a named custom policy associated with a zone; -// e.g. the Java VM settings can be defined with a unique key such as 'Java'. -// Custom policy support is intended to allow extensibility from the predefined -// set of policies that IE4 has built in. -// -// pwszKey is the string name designating the custom policy. Components are -// responsible for having unique names. -// ppPolicy is the caller allocated buffer for the policy byte blob. -// pcbPolicy is the size of the byte blob to be set. -// dwRegFlags determines if HTCU or HKLM is set. -// Returns S_OK or ??? if failed to write the zone custom policy. -// Gets action policy associated with a zone, the builtin, fixed-length policies info. - -// dwAction is the action code for the action as defined above. -// pPolicy is the caller allocated buffer for the policy data. -// cbPolicy is the size of the caller allocated buffer. -// dwRegFlags determines how registry is accessed (see above). -// Returns S_OK if action is valid; ??? if action is not valid. - -EXTERN_C const IID IID_IInternetZoneManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79eac9ef-baf9-11ce-8c82-00aa004ba90b") - IInternetZoneManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetZoneAttributes( - /* [in] */ DWORD dwZone, - /* [annotation][unique][out][in] */ - _Inout_ ZONEATTRIBUTES *pZoneAttributes) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetZoneAttributes( - /* [in] */ DWORD dwZone, - /* [annotation][in] */ - _In_ ZONEATTRIBUTES *pZoneAttributes) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetZoneCustomPolicy( - /* [in] */ DWORD dwZone, - /* [in] */ REFGUID guidKey, - /* [annotation][size_is][size_is][out] */ - _Outptr_result_buffer_(*pcbPolicy) BYTE **ppPolicy, - /* [annotation][out] */ - _Out_ DWORD *pcbPolicy, - /* [in] */ URLZONEREG urlZoneReg) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetZoneCustomPolicy( - /* [in] */ DWORD dwZone, - /* [in] */ REFGUID guidKey, - /* [annotation][size_is][in] */ - _In_reads_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetZoneActionPolicy( - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][out] */ - _Out_writes_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetZoneActionPolicy( - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][in] */ - _In_reads_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg) = 0; - - virtual HRESULT STDMETHODCALLTYPE PromptAction( - /* [in] */ DWORD dwAction, - /* [in] */ HWND hwndParent, - /* [in] */ LPCWSTR pwszUrl, - /* [in] */ LPCWSTR pwszText, - /* [in] */ DWORD dwPromptFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE LogAction( - /* [in] */ DWORD dwAction, - /* [in] */ LPCWSTR pwszUrl, - /* [in] */ LPCWSTR pwszText, - /* [in] */ DWORD dwLogFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateZoneEnumerator( - /* [out] */ DWORD *pdwEnum, - /* [out] */ DWORD *pdwCount, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetZoneAt( - /* [in] */ DWORD dwEnum, - /* [in] */ DWORD dwIndex, - /* [out] */ DWORD *pdwZone) = 0; - - virtual HRESULT STDMETHODCALLTYPE DestroyZoneEnumerator( - /* [in] */ DWORD dwEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE CopyTemplatePoliciesToZone( - /* [in] */ DWORD dwTemplate, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetZoneManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetZoneManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetZoneManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetZoneManager * This); - - HRESULT ( STDMETHODCALLTYPE *GetZoneAttributes )( - IInternetZoneManager * This, - /* [in] */ DWORD dwZone, - /* [annotation][unique][out][in] */ - _Inout_ ZONEATTRIBUTES *pZoneAttributes); - - HRESULT ( STDMETHODCALLTYPE *SetZoneAttributes )( - IInternetZoneManager * This, - /* [in] */ DWORD dwZone, - /* [annotation][in] */ - _In_ ZONEATTRIBUTES *pZoneAttributes); - - HRESULT ( STDMETHODCALLTYPE *GetZoneCustomPolicy )( - IInternetZoneManager * This, - /* [in] */ DWORD dwZone, - /* [in] */ REFGUID guidKey, - /* [annotation][size_is][size_is][out] */ - _Outptr_result_buffer_(*pcbPolicy) BYTE **ppPolicy, - /* [annotation][out] */ - _Out_ DWORD *pcbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *SetZoneCustomPolicy )( - IInternetZoneManager * This, - /* [in] */ DWORD dwZone, - /* [in] */ REFGUID guidKey, - /* [annotation][size_is][in] */ - _In_reads_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *GetZoneActionPolicy )( - IInternetZoneManager * This, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][out] */ - _Out_writes_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *SetZoneActionPolicy )( - IInternetZoneManager * This, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][in] */ - _In_reads_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *PromptAction )( - IInternetZoneManager * This, - /* [in] */ DWORD dwAction, - /* [in] */ HWND hwndParent, - /* [in] */ LPCWSTR pwszUrl, - /* [in] */ LPCWSTR pwszText, - /* [in] */ DWORD dwPromptFlags); - - HRESULT ( STDMETHODCALLTYPE *LogAction )( - IInternetZoneManager * This, - /* [in] */ DWORD dwAction, - /* [in] */ LPCWSTR pwszUrl, - /* [in] */ LPCWSTR pwszText, - /* [in] */ DWORD dwLogFlags); - - HRESULT ( STDMETHODCALLTYPE *CreateZoneEnumerator )( - IInternetZoneManager * This, - /* [out] */ DWORD *pdwEnum, - /* [out] */ DWORD *pdwCount, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetZoneAt )( - IInternetZoneManager * This, - /* [in] */ DWORD dwEnum, - /* [in] */ DWORD dwIndex, - /* [out] */ DWORD *pdwZone); - - HRESULT ( STDMETHODCALLTYPE *DestroyZoneEnumerator )( - IInternetZoneManager * This, - /* [in] */ DWORD dwEnum); - - HRESULT ( STDMETHODCALLTYPE *CopyTemplatePoliciesToZone )( - IInternetZoneManager * This, - /* [in] */ DWORD dwTemplate, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwReserved); - - END_INTERFACE - } IInternetZoneManagerVtbl; - - interface IInternetZoneManager - { - CONST_VTBL struct IInternetZoneManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetZoneManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetZoneManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetZoneManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetZoneManager_GetZoneAttributes(This,dwZone,pZoneAttributes) \ - ( (This)->lpVtbl -> GetZoneAttributes(This,dwZone,pZoneAttributes) ) - -#define IInternetZoneManager_SetZoneAttributes(This,dwZone,pZoneAttributes) \ - ( (This)->lpVtbl -> SetZoneAttributes(This,dwZone,pZoneAttributes) ) - -#define IInternetZoneManager_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) ) - -#define IInternetZoneManager_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) ) - -#define IInternetZoneManager_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) ) - -#define IInternetZoneManager_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) ) - -#define IInternetZoneManager_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) \ - ( (This)->lpVtbl -> PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) ) - -#define IInternetZoneManager_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) \ - ( (This)->lpVtbl -> LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) ) - -#define IInternetZoneManager_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) \ - ( (This)->lpVtbl -> CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) ) - -#define IInternetZoneManager_GetZoneAt(This,dwEnum,dwIndex,pdwZone) \ - ( (This)->lpVtbl -> GetZoneAt(This,dwEnum,dwIndex,pdwZone) ) - -#define IInternetZoneManager_DestroyZoneEnumerator(This,dwEnum) \ - ( (This)->lpVtbl -> DestroyZoneEnumerator(This,dwEnum) ) - -#define IInternetZoneManager_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) \ - ( (This)->lpVtbl -> CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetZoneManager_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0045 */ -/* [local] */ - -#endif -#if (_WIN32_IE >= _WIN32_IE_IE60SP2) -#ifndef _LPINTERNETZONEMANAGEREX_DEFINED -#define _LPINTERNETZONEMANAGEREX_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0045_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0045_v0_0_s_ifspec; - -#ifndef __IInternetZoneManagerEx_INTERFACE_DEFINED__ -#define __IInternetZoneManagerEx_INTERFACE_DEFINED__ - -/* interface IInternetZoneManagerEx */ -/* [unique][helpstring][uuid][object][local] */ - -// Gets action policy associated with a zone, the builtin, fixed-length policies info. - -// dwAction is the action code for the action as defined above. -// pPolicy is the caller allocated buffer for the policy data. -// cbPolicy is the size of the caller allocated buffer. -// dwRegFlags determines how registry is accessed (see above). -// dwFlags determine which registry policies are accessed (see above). -// Returns S_OK if action is valid; ??? if action is not valid. - -EXTERN_C const IID IID_IInternetZoneManagerEx; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("A4C23339-8E06-431e-9BF4-7E711C085648") - IInternetZoneManagerEx : public IInternetZoneManager - { - public: - virtual HRESULT STDMETHODCALLTYPE GetZoneActionPolicyEx( - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][out] */ - _Out_writes_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetZoneActionPolicyEx( - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][in] */ - _In_reads_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg, - /* [in] */ DWORD dwFlags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetZoneManagerExVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetZoneManagerEx * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetZoneManagerEx * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetZoneManagerEx * This); - - HRESULT ( STDMETHODCALLTYPE *GetZoneAttributes )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwZone, - /* [annotation][unique][out][in] */ - _Inout_ ZONEATTRIBUTES *pZoneAttributes); - - HRESULT ( STDMETHODCALLTYPE *SetZoneAttributes )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwZone, - /* [annotation][in] */ - _In_ ZONEATTRIBUTES *pZoneAttributes); - - HRESULT ( STDMETHODCALLTYPE *GetZoneCustomPolicy )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwZone, - /* [in] */ REFGUID guidKey, - /* [annotation][size_is][size_is][out] */ - _Outptr_result_buffer_(*pcbPolicy) BYTE **ppPolicy, - /* [annotation][out] */ - _Out_ DWORD *pcbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *SetZoneCustomPolicy )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwZone, - /* [in] */ REFGUID guidKey, - /* [annotation][size_is][in] */ - _In_reads_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *GetZoneActionPolicy )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][out] */ - _Out_writes_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *SetZoneActionPolicy )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][in] */ - _In_reads_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *PromptAction )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwAction, - /* [in] */ HWND hwndParent, - /* [in] */ LPCWSTR pwszUrl, - /* [in] */ LPCWSTR pwszText, - /* [in] */ DWORD dwPromptFlags); - - HRESULT ( STDMETHODCALLTYPE *LogAction )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwAction, - /* [in] */ LPCWSTR pwszUrl, - /* [in] */ LPCWSTR pwszText, - /* [in] */ DWORD dwLogFlags); - - HRESULT ( STDMETHODCALLTYPE *CreateZoneEnumerator )( - IInternetZoneManagerEx * This, - /* [out] */ DWORD *pdwEnum, - /* [out] */ DWORD *pdwCount, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetZoneAt )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwEnum, - /* [in] */ DWORD dwIndex, - /* [out] */ DWORD *pdwZone); - - HRESULT ( STDMETHODCALLTYPE *DestroyZoneEnumerator )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwEnum); - - HRESULT ( STDMETHODCALLTYPE *CopyTemplatePoliciesToZone )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwTemplate, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *GetZoneActionPolicyEx )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][out] */ - _Out_writes_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *SetZoneActionPolicyEx )( - IInternetZoneManagerEx * This, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][in] */ - _In_reads_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg, - /* [in] */ DWORD dwFlags); - - END_INTERFACE - } IInternetZoneManagerExVtbl; - - interface IInternetZoneManagerEx - { - CONST_VTBL struct IInternetZoneManagerExVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetZoneManagerEx_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetZoneManagerEx_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetZoneManagerEx_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetZoneManagerEx_GetZoneAttributes(This,dwZone,pZoneAttributes) \ - ( (This)->lpVtbl -> GetZoneAttributes(This,dwZone,pZoneAttributes) ) - -#define IInternetZoneManagerEx_SetZoneAttributes(This,dwZone,pZoneAttributes) \ - ( (This)->lpVtbl -> SetZoneAttributes(This,dwZone,pZoneAttributes) ) - -#define IInternetZoneManagerEx_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) ) - -#define IInternetZoneManagerEx_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) ) - -#define IInternetZoneManagerEx_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) ) - -#define IInternetZoneManagerEx_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) ) - -#define IInternetZoneManagerEx_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) \ - ( (This)->lpVtbl -> PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) ) - -#define IInternetZoneManagerEx_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) \ - ( (This)->lpVtbl -> LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) ) - -#define IInternetZoneManagerEx_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) \ - ( (This)->lpVtbl -> CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) ) - -#define IInternetZoneManagerEx_GetZoneAt(This,dwEnum,dwIndex,pdwZone) \ - ( (This)->lpVtbl -> GetZoneAt(This,dwEnum,dwIndex,pdwZone) ) - -#define IInternetZoneManagerEx_DestroyZoneEnumerator(This,dwEnum) \ - ( (This)->lpVtbl -> DestroyZoneEnumerator(This,dwEnum) ) - -#define IInternetZoneManagerEx_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) \ - ( (This)->lpVtbl -> CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) ) - - -#define IInternetZoneManagerEx_GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) \ - ( (This)->lpVtbl -> GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) ) - -#define IInternetZoneManagerEx_SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) \ - ( (This)->lpVtbl -> SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetZoneManagerEx_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0046 */ -/* [local] */ - -#endif -#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2) -#if (_WIN32_IE >= _WIN32_IE_IE70) -#ifndef _LPINTERNETZONEMANAGEREX2_DEFINED -#define _LPINTERNETZONEMANAGEREX2_DEFINED -#define SECURITY_IE_STATE_GREEN 0x00000000 -#define SECURITY_IE_STATE_RED 0x00000001 - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0046_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0046_v0_0_s_ifspec; - -#ifndef __IInternetZoneManagerEx2_INTERFACE_DEFINED__ -#define __IInternetZoneManagerEx2_INTERFACE_DEFINED__ - -/* interface IInternetZoneManagerEx2 */ -/* [unique][helpstring][uuid][object][local] */ - -// Gets the zone attributes (information in registry other than actual security -// policies associated with the zone). Zone attributes are fixed as: -// Can also verify template settings by matching current settings with security template - -EXTERN_C const IID IID_IInternetZoneManagerEx2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("EDC17559-DD5D-4846-8EEF-8BECBA5A4ABF") - IInternetZoneManagerEx2 : public IInternetZoneManagerEx - { - public: - virtual HRESULT STDMETHODCALLTYPE GetZoneAttributesEx( - /* [in] */ DWORD dwZone, - /* [unique][out][in] */ ZONEATTRIBUTES *pZoneAttributes, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetZoneSecurityState( - /* [in] */ DWORD dwZoneIndex, - /* [in] */ BOOL fRespectPolicy, - /* [out][in] */ LPDWORD pdwState, - /* [out][in] */ BOOL *pfPolicyEncountered) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetIESecurityState( - /* [in] */ BOOL fRespectPolicy, - /* [out][in] */ LPDWORD pdwState, - /* [out][in] */ BOOL *pfPolicyEncountered, - /* [in] */ BOOL fNoCache) = 0; - - virtual HRESULT STDMETHODCALLTYPE FixUnsecureSettings( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IInternetZoneManagerEx2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IInternetZoneManagerEx2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IInternetZoneManagerEx2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IInternetZoneManagerEx2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetZoneAttributes )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwZone, - /* [annotation][unique][out][in] */ - _Inout_ ZONEATTRIBUTES *pZoneAttributes); - - HRESULT ( STDMETHODCALLTYPE *SetZoneAttributes )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwZone, - /* [annotation][in] */ - _In_ ZONEATTRIBUTES *pZoneAttributes); - - HRESULT ( STDMETHODCALLTYPE *GetZoneCustomPolicy )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwZone, - /* [in] */ REFGUID guidKey, - /* [annotation][size_is][size_is][out] */ - _Outptr_result_buffer_(*pcbPolicy) BYTE **ppPolicy, - /* [annotation][out] */ - _Out_ DWORD *pcbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *SetZoneCustomPolicy )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwZone, - /* [in] */ REFGUID guidKey, - /* [annotation][size_is][in] */ - _In_reads_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *GetZoneActionPolicy )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][out] */ - _Out_writes_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *SetZoneActionPolicy )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][in] */ - _In_reads_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg); - - HRESULT ( STDMETHODCALLTYPE *PromptAction )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwAction, - /* [in] */ HWND hwndParent, - /* [in] */ LPCWSTR pwszUrl, - /* [in] */ LPCWSTR pwszText, - /* [in] */ DWORD dwPromptFlags); - - HRESULT ( STDMETHODCALLTYPE *LogAction )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwAction, - /* [in] */ LPCWSTR pwszUrl, - /* [in] */ LPCWSTR pwszText, - /* [in] */ DWORD dwLogFlags); - - HRESULT ( STDMETHODCALLTYPE *CreateZoneEnumerator )( - IInternetZoneManagerEx2 * This, - /* [out] */ DWORD *pdwEnum, - /* [out] */ DWORD *pdwCount, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetZoneAt )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwEnum, - /* [in] */ DWORD dwIndex, - /* [out] */ DWORD *pdwZone); - - HRESULT ( STDMETHODCALLTYPE *DestroyZoneEnumerator )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwEnum); - - HRESULT ( STDMETHODCALLTYPE *CopyTemplatePoliciesToZone )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwTemplate, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *GetZoneActionPolicyEx )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][out] */ - _Out_writes_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *SetZoneActionPolicyEx )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwZone, - /* [in] */ DWORD dwAction, - /* [annotation][size_is][in] */ - _In_reads_(cbPolicy) BYTE *pPolicy, - /* [in] */ DWORD cbPolicy, - /* [in] */ URLZONEREG urlZoneReg, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetZoneAttributesEx )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwZone, - /* [unique][out][in] */ ZONEATTRIBUTES *pZoneAttributes, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetZoneSecurityState )( - IInternetZoneManagerEx2 * This, - /* [in] */ DWORD dwZoneIndex, - /* [in] */ BOOL fRespectPolicy, - /* [out][in] */ LPDWORD pdwState, - /* [out][in] */ BOOL *pfPolicyEncountered); - - HRESULT ( STDMETHODCALLTYPE *GetIESecurityState )( - IInternetZoneManagerEx2 * This, - /* [in] */ BOOL fRespectPolicy, - /* [out][in] */ LPDWORD pdwState, - /* [out][in] */ BOOL *pfPolicyEncountered, - /* [in] */ BOOL fNoCache); - - HRESULT ( STDMETHODCALLTYPE *FixUnsecureSettings )( - IInternetZoneManagerEx2 * This); - - END_INTERFACE - } IInternetZoneManagerEx2Vtbl; - - interface IInternetZoneManagerEx2 - { - CONST_VTBL struct IInternetZoneManagerEx2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IInternetZoneManagerEx2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IInternetZoneManagerEx2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IInternetZoneManagerEx2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IInternetZoneManagerEx2_GetZoneAttributes(This,dwZone,pZoneAttributes) \ - ( (This)->lpVtbl -> GetZoneAttributes(This,dwZone,pZoneAttributes) ) - -#define IInternetZoneManagerEx2_SetZoneAttributes(This,dwZone,pZoneAttributes) \ - ( (This)->lpVtbl -> SetZoneAttributes(This,dwZone,pZoneAttributes) ) - -#define IInternetZoneManagerEx2_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) ) - -#define IInternetZoneManagerEx2_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) ) - -#define IInternetZoneManagerEx2_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) ) - -#define IInternetZoneManagerEx2_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) \ - ( (This)->lpVtbl -> SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) ) - -#define IInternetZoneManagerEx2_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) \ - ( (This)->lpVtbl -> PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) ) - -#define IInternetZoneManagerEx2_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) \ - ( (This)->lpVtbl -> LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) ) - -#define IInternetZoneManagerEx2_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) \ - ( (This)->lpVtbl -> CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) ) - -#define IInternetZoneManagerEx2_GetZoneAt(This,dwEnum,dwIndex,pdwZone) \ - ( (This)->lpVtbl -> GetZoneAt(This,dwEnum,dwIndex,pdwZone) ) - -#define IInternetZoneManagerEx2_DestroyZoneEnumerator(This,dwEnum) \ - ( (This)->lpVtbl -> DestroyZoneEnumerator(This,dwEnum) ) - -#define IInternetZoneManagerEx2_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) \ - ( (This)->lpVtbl -> CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) ) - - -#define IInternetZoneManagerEx2_GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) \ - ( (This)->lpVtbl -> GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) ) - -#define IInternetZoneManagerEx2_SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) \ - ( (This)->lpVtbl -> SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) ) - - -#define IInternetZoneManagerEx2_GetZoneAttributesEx(This,dwZone,pZoneAttributes,dwFlags) \ - ( (This)->lpVtbl -> GetZoneAttributesEx(This,dwZone,pZoneAttributes,dwFlags) ) - -#define IInternetZoneManagerEx2_GetZoneSecurityState(This,dwZoneIndex,fRespectPolicy,pdwState,pfPolicyEncountered) \ - ( (This)->lpVtbl -> GetZoneSecurityState(This,dwZoneIndex,fRespectPolicy,pdwState,pfPolicyEncountered) ) - -#define IInternetZoneManagerEx2_GetIESecurityState(This,fRespectPolicy,pdwState,pfPolicyEncountered,fNoCache) \ - ( (This)->lpVtbl -> GetIESecurityState(This,fRespectPolicy,pdwState,pfPolicyEncountered,fNoCache) ) - -#define IInternetZoneManagerEx2_FixUnsecureSettings(This) \ - ( (This)->lpVtbl -> FixUnsecureSettings(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IInternetZoneManagerEx2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0047 */ -/* [local] */ - -#endif -#endif //(_WIN32_IE >= _WIN32_IE_IE70) -EXTERN_C const IID CLSID_SoftDistExt; -#ifndef _LPSOFTDISTEXT_DEFINED -#define _LPSOFTDISTEXT_DEFINED - -#define SOFTDIST_FLAG_USAGE_EMAIL 0x00000001 -#define SOFTDIST_FLAG_USAGE_PRECACHE 0x00000002 -#define SOFTDIST_FLAG_USAGE_AUTOINSTALL 0x00000004 -#define SOFTDIST_FLAG_DELETE_SUBSCRIPTION 0x00000008 - - -#define SOFTDIST_ADSTATE_NONE 0x00000000 -#define SOFTDIST_ADSTATE_AVAILABLE 0x00000001 -#define SOFTDIST_ADSTATE_DOWNLOADED 0x00000002 -#define SOFTDIST_ADSTATE_INSTALLED 0x00000003 - -typedef struct _tagCODEBASEHOLD - { - ULONG cbSize; - LPWSTR szDistUnit; - LPWSTR szCodeBase; - DWORD dwVersionMS; - DWORD dwVersionLS; - DWORD dwStyle; - } CODEBASEHOLD; - -typedef struct _tagCODEBASEHOLD *LPCODEBASEHOLD; - -typedef struct _tagSOFTDISTINFO - { - ULONG cbSize; - DWORD dwFlags; - DWORD dwAdState; - LPWSTR szTitle; - LPWSTR szAbstract; - LPWSTR szHREF; - DWORD dwInstalledVersionMS; - DWORD dwInstalledVersionLS; - DWORD dwUpdateVersionMS; - DWORD dwUpdateVersionLS; - DWORD dwAdvertisedVersionMS; - DWORD dwAdvertisedVersionLS; - DWORD dwReserved; - } SOFTDISTINFO; - -typedef struct _tagSOFTDISTINFO *LPSOFTDISTINFO; - - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0047_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0047_v0_0_s_ifspec; - -#ifndef __ISoftDistExt_INTERFACE_DEFINED__ -#define __ISoftDistExt_INTERFACE_DEFINED__ - -/* interface ISoftDistExt */ -/* [unique][helpstring][uuid][object][local] */ - - -EXTERN_C const IID IID_ISoftDistExt; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("B15B8DC1-C7E1-11d0-8680-00AA00BDCB71") - ISoftDistExt : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ProcessSoftDist( - /* [in] */ LPCWSTR szCDFURL, - /* [in] */ IXMLElement *pSoftDistElement, - /* [out][in] */ LPSOFTDISTINFO lpsdi) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFirstCodeBase( - /* [annotation][in] */ - __RPC__in LPWSTR *szCodeBase, - /* [in] */ LPDWORD dwMaxSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNextCodeBase( - /* [annotation][in] */ - __RPC__in LPWSTR *szCodeBase, - /* [in] */ LPDWORD dwMaxSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE AsyncInstallDistributionUnit( - /* [in] */ IBindCtx *pbc, - /* [in] */ LPVOID pvReserved, - /* [in] */ DWORD flags, - /* [in] */ LPCODEBASEHOLD lpcbh) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ISoftDistExtVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISoftDistExt * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISoftDistExt * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISoftDistExt * This); - - HRESULT ( STDMETHODCALLTYPE *ProcessSoftDist )( - ISoftDistExt * This, - /* [in] */ LPCWSTR szCDFURL, - /* [in] */ IXMLElement *pSoftDistElement, - /* [out][in] */ LPSOFTDISTINFO lpsdi); - - HRESULT ( STDMETHODCALLTYPE *GetFirstCodeBase )( - ISoftDistExt * This, - /* [annotation][in] */ - __RPC__in LPWSTR *szCodeBase, - /* [in] */ LPDWORD dwMaxSize); - - HRESULT ( STDMETHODCALLTYPE *GetNextCodeBase )( - ISoftDistExt * This, - /* [annotation][in] */ - __RPC__in LPWSTR *szCodeBase, - /* [in] */ LPDWORD dwMaxSize); - - HRESULT ( STDMETHODCALLTYPE *AsyncInstallDistributionUnit )( - ISoftDistExt * This, - /* [in] */ IBindCtx *pbc, - /* [in] */ LPVOID pvReserved, - /* [in] */ DWORD flags, - /* [in] */ LPCODEBASEHOLD lpcbh); - - END_INTERFACE - } ISoftDistExtVtbl; - - interface ISoftDistExt - { - CONST_VTBL struct ISoftDistExtVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISoftDistExt_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ISoftDistExt_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ISoftDistExt_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ISoftDistExt_ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi) \ - ( (This)->lpVtbl -> ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi) ) - -#define ISoftDistExt_GetFirstCodeBase(This,szCodeBase,dwMaxSize) \ - ( (This)->lpVtbl -> GetFirstCodeBase(This,szCodeBase,dwMaxSize) ) - -#define ISoftDistExt_GetNextCodeBase(This,szCodeBase,dwMaxSize) \ - ( (This)->lpVtbl -> GetNextCodeBase(This,szCodeBase,dwMaxSize) ) - -#define ISoftDistExt_AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh) \ - ( (This)->lpVtbl -> AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ISoftDistExt_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0048 */ -/* [local] */ - -STDAPI GetSoftwareUpdateInfo( LPCWSTR szDistUnit, _Out_ LPSOFTDISTINFO psdi ); -STDAPI SetSoftwareUpdateAdvertisementState( LPCWSTR szDistUnit, DWORD dwAdState, DWORD dwAdvertisedVersionMS, DWORD dwAdvertisedVersionLS ); -#endif -#ifndef _LPCATALOGFILEINFO_DEFINED -#define _LPCATALOGFILEINFO_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0048_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0048_v0_0_s_ifspec; - -#ifndef __ICatalogFileInfo_INTERFACE_DEFINED__ -#define __ICatalogFileInfo_INTERFACE_DEFINED__ - -/* interface ICatalogFileInfo */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ ICatalogFileInfo *LPCATALOGFILEINFO; - - -EXTERN_C const IID IID_ICatalogFileInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("711C7600-6B48-11d1-B403-00AA00B92AF1") - ICatalogFileInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCatalogFile( - /* [annotation][out] */ - __RPC__out LPSTR *ppszCatalogFile) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetJavaTrust( - /* [out] */ void **ppJavaTrust) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICatalogFileInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICatalogFileInfo * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICatalogFileInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICatalogFileInfo * This); - - HRESULT ( STDMETHODCALLTYPE *GetCatalogFile )( - ICatalogFileInfo * This, - /* [annotation][out] */ - __RPC__out LPSTR *ppszCatalogFile); - - HRESULT ( STDMETHODCALLTYPE *GetJavaTrust )( - ICatalogFileInfo * This, - /* [out] */ void **ppJavaTrust); - - END_INTERFACE - } ICatalogFileInfoVtbl; - - interface ICatalogFileInfo - { - CONST_VTBL struct ICatalogFileInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICatalogFileInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICatalogFileInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICatalogFileInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICatalogFileInfo_GetCatalogFile(This,ppszCatalogFile) \ - ( (This)->lpVtbl -> GetCatalogFile(This,ppszCatalogFile) ) - -#define ICatalogFileInfo_GetJavaTrust(This,ppJavaTrust) \ - ( (This)->lpVtbl -> GetJavaTrust(This,ppJavaTrust) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICatalogFileInfo_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0049 */ -/* [local] */ - -#endif -#ifndef _LPDATAFILTER_DEFINED -#define _LPDATAFILTER_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0049_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0049_v0_0_s_ifspec; - -#ifndef __IDataFilter_INTERFACE_DEFINED__ -#define __IDataFilter_INTERFACE_DEFINED__ - -/* interface IDataFilter */ -/* [unique][uuid][object] */ - -typedef /* [unique] */ __RPC_unique_pointer IDataFilter *LPDATAFILTER; - - -EXTERN_C const IID IID_IDataFilter; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("69d14c80-c18e-11d0-a9ce-006097942311") - IDataFilter : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE DoEncode( - /* [in] */ DWORD dwFlags, - /* [in] */ LONG lInBufferSize, - /* [size_is][in] */ __RPC__in_ecount_full(lInBufferSize) BYTE *pbInBuffer, - /* [in] */ LONG lOutBufferSize, - /* [size_is][out] */ __RPC__out_ecount_full(lOutBufferSize) BYTE *pbOutBuffer, - /* [in] */ LONG lInBytesAvailable, - /* [out] */ __RPC__out LONG *plInBytesRead, - /* [out] */ __RPC__out LONG *plOutBytesWritten, - /* [in] */ DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE DoDecode( - /* [in] */ DWORD dwFlags, - /* [in] */ LONG lInBufferSize, - /* [size_is][in] */ __RPC__in_ecount_full(lInBufferSize) BYTE *pbInBuffer, - /* [in] */ LONG lOutBufferSize, - /* [size_is][out] */ __RPC__out_ecount_full(lOutBufferSize) BYTE *pbOutBuffer, - /* [in] */ LONG lInBytesAvailable, - /* [out] */ __RPC__out LONG *plInBytesRead, - /* [out] */ __RPC__out LONG *plOutBytesWritten, - /* [in] */ DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetEncodingLevel( - /* [in] */ DWORD dwEncLevel) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDataFilterVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IDataFilter * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IDataFilter * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IDataFilter * This); - - HRESULT ( STDMETHODCALLTYPE *DoEncode )( - __RPC__in IDataFilter * This, - /* [in] */ DWORD dwFlags, - /* [in] */ LONG lInBufferSize, - /* [size_is][in] */ __RPC__in_ecount_full(lInBufferSize) BYTE *pbInBuffer, - /* [in] */ LONG lOutBufferSize, - /* [size_is][out] */ __RPC__out_ecount_full(lOutBufferSize) BYTE *pbOutBuffer, - /* [in] */ LONG lInBytesAvailable, - /* [out] */ __RPC__out LONG *plInBytesRead, - /* [out] */ __RPC__out LONG *plOutBytesWritten, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *DoDecode )( - __RPC__in IDataFilter * This, - /* [in] */ DWORD dwFlags, - /* [in] */ LONG lInBufferSize, - /* [size_is][in] */ __RPC__in_ecount_full(lInBufferSize) BYTE *pbInBuffer, - /* [in] */ LONG lOutBufferSize, - /* [size_is][out] */ __RPC__out_ecount_full(lOutBufferSize) BYTE *pbOutBuffer, - /* [in] */ LONG lInBytesAvailable, - /* [out] */ __RPC__out LONG *plInBytesRead, - /* [out] */ __RPC__out LONG *plOutBytesWritten, - /* [in] */ DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *SetEncodingLevel )( - __RPC__in IDataFilter * This, - /* [in] */ DWORD dwEncLevel); - - END_INTERFACE - } IDataFilterVtbl; - - interface IDataFilter - { - CONST_VTBL struct IDataFilterVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDataFilter_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDataFilter_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDataFilter_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDataFilter_DoEncode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved) \ - ( (This)->lpVtbl -> DoEncode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved) ) - -#define IDataFilter_DoDecode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved) \ - ( (This)->lpVtbl -> DoDecode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved) ) - -#define IDataFilter_SetEncodingLevel(This,dwEncLevel) \ - ( (This)->lpVtbl -> SetEncodingLevel(This,dwEncLevel) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDataFilter_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0050 */ -/* [local] */ - -#endif -#ifndef _LPENCODINGFILTERFACTORY_DEFINED -#define _LPENCODINGFILTERFACTORY_DEFINED -typedef struct _tagPROTOCOLFILTERDATA - { - DWORD cbSize; - IInternetProtocolSink *pProtocolSink; - IInternetProtocol *pProtocol; - IUnknown *pUnk; - DWORD dwFilterFlags; - } PROTOCOLFILTERDATA; - - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0050_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0050_v0_0_s_ifspec; - -#ifndef __IEncodingFilterFactory_INTERFACE_DEFINED__ -#define __IEncodingFilterFactory_INTERFACE_DEFINED__ - -/* interface IEncodingFilterFactory */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IEncodingFilterFactory *LPENCODINGFILTERFACTORY; - -typedef struct _tagDATAINFO - { - ULONG ulTotalSize; - ULONG ulavrPacketSize; - ULONG ulConnectSpeed; - ULONG ulProcessorSpeed; - } DATAINFO; - - -EXTERN_C const IID IID_IEncodingFilterFactory; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("70bdde00-c18e-11d0-a9ce-006097942311") - IEncodingFilterFactory : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE FindBestFilter( - /* [in] */ LPCWSTR pwzCodeIn, - /* [in] */ LPCWSTR pwzCodeOut, - /* [in] */ DATAINFO info, - /* [out] */ IDataFilter **ppDF) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDefaultFilter( - /* [in] */ LPCWSTR pwzCodeIn, - /* [in] */ LPCWSTR pwzCodeOut, - /* [out] */ IDataFilter **ppDF) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IEncodingFilterFactoryVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IEncodingFilterFactory * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IEncodingFilterFactory * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IEncodingFilterFactory * This); - - HRESULT ( STDMETHODCALLTYPE *FindBestFilter )( - IEncodingFilterFactory * This, - /* [in] */ LPCWSTR pwzCodeIn, - /* [in] */ LPCWSTR pwzCodeOut, - /* [in] */ DATAINFO info, - /* [out] */ IDataFilter **ppDF); - - HRESULT ( STDMETHODCALLTYPE *GetDefaultFilter )( - IEncodingFilterFactory * This, - /* [in] */ LPCWSTR pwzCodeIn, - /* [in] */ LPCWSTR pwzCodeOut, - /* [out] */ IDataFilter **ppDF); - - END_INTERFACE - } IEncodingFilterFactoryVtbl; - - interface IEncodingFilterFactory - { - CONST_VTBL struct IEncodingFilterFactoryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IEncodingFilterFactory_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IEncodingFilterFactory_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IEncodingFilterFactory_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IEncodingFilterFactory_FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF) \ - ( (This)->lpVtbl -> FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF) ) - -#define IEncodingFilterFactory_GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF) \ - ( (This)->lpVtbl -> GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IEncodingFilterFactory_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0051 */ -/* [local] */ - -#endif -#ifndef _HITLOGGING_DEFINED -#define _HITLOGGING_DEFINED -// Logging-specific apis -BOOL WINAPI IsLoggingEnabledA(_In_ LPCSTR pszUrl); -BOOL WINAPI IsLoggingEnabledW(_In_ LPCWSTR pwszUrl); -#ifdef UNICODE -#define IsLoggingEnabled IsLoggingEnabledW -#else -#define IsLoggingEnabled IsLoggingEnabledA -#endif // !UNICODE -typedef struct _tagHIT_LOGGING_INFO - { - DWORD dwStructSize; - LPSTR lpszLoggedUrlName; - SYSTEMTIME StartTime; - SYSTEMTIME EndTime; - LPSTR lpszExtendedInfo; - } HIT_LOGGING_INFO; - -typedef struct _tagHIT_LOGGING_INFO *LPHIT_LOGGING_INFO; - -BOOL WINAPI WriteHitLogging(_In_ LPHIT_LOGGING_INFO lpLogginginfo); -#define CONFIRMSAFETYACTION_LOADOBJECT 0x00000001 -struct CONFIRMSAFETY - { - CLSID clsid; - IUnknown *pUnk; - DWORD dwFlags; - } ; -EXTERN_C const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY; -#endif -#ifndef _LPIWRAPPEDPROTOCOL_DEFINED -#define _LPIWRAPPEDPROTOCOL_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0051_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0051_v0_0_s_ifspec; - -#ifndef __IWrappedProtocol_INTERFACE_DEFINED__ -#define __IWrappedProtocol_INTERFACE_DEFINED__ - -/* interface IWrappedProtocol */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IWrappedProtocol *LPIWRAPPEDPROTOCOL; - - -EXTERN_C const IID IID_IWrappedProtocol; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("53c84785-8425-4dc5-971b-e58d9c19f9b6") - IWrappedProtocol : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetWrapperCode( - /* [out] */ LONG *pnCode, - /* [in] */ DWORD_PTR dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IWrappedProtocolVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IWrappedProtocol * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IWrappedProtocol * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IWrappedProtocol * This); - - HRESULT ( STDMETHODCALLTYPE *GetWrapperCode )( - IWrappedProtocol * This, - /* [out] */ LONG *pnCode, - /* [in] */ DWORD_PTR dwReserved); - - END_INTERFACE - } IWrappedProtocolVtbl; - - interface IWrappedProtocol - { - CONST_VTBL struct IWrappedProtocolVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IWrappedProtocol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IWrappedProtocol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IWrappedProtocol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IWrappedProtocol_GetWrapperCode(This,pnCode,dwReserved) \ - ( (This)->lpVtbl -> GetWrapperCode(This,pnCode,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IWrappedProtocol_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0052 */ -/* [local] */ - -#endif -#ifndef _LPGETBINDHANDLE_DEFINED -#define _LPGETBINDHANDLE_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0052_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0052_v0_0_s_ifspec; - -#ifndef __IGetBindHandle_INTERFACE_DEFINED__ -#define __IGetBindHandle_INTERFACE_DEFINED__ - -/* interface IGetBindHandle */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IGetBindHandle *LPGETBINDHANDLE; - -typedef /* [public][public] */ -enum __MIDL_IGetBindHandle_0001 - { - BINDHANDLETYPES_APPCACHE = 0, - BINDHANDLETYPES_DEPENDENCY = 0x1, - BINDHANDLETYPES_COUNT = ( BINDHANDLETYPES_DEPENDENCY + 1 ) - } BINDHANDLETYPES; - - -EXTERN_C const IID IID_IGetBindHandle; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("AF0FF408-129D-4b20-91F0-02BD23D88352") - IGetBindHandle : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetBindHandle( - /* [in] */ BINDHANDLETYPES enumRequestedHandle, - /* [out] */ HANDLE *pRetHandle) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IGetBindHandleVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IGetBindHandle * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IGetBindHandle * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IGetBindHandle * This); - - HRESULT ( STDMETHODCALLTYPE *GetBindHandle )( - IGetBindHandle * This, - /* [in] */ BINDHANDLETYPES enumRequestedHandle, - /* [out] */ HANDLE *pRetHandle); - - END_INTERFACE - } IGetBindHandleVtbl; - - interface IGetBindHandle - { - CONST_VTBL struct IGetBindHandleVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IGetBindHandle_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IGetBindHandle_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IGetBindHandle_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IGetBindHandle_GetBindHandle(This,enumRequestedHandle,pRetHandle) \ - ( (This)->lpVtbl -> GetBindHandle(This,enumRequestedHandle,pRetHandle) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IGetBindHandle_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0053 */ -/* [local] */ - -#endif -#ifndef _XHRPLUGGABLEPROTOCOL_DEFINED -#define _XHRPLUGGABLEPROTOCOL_DEFINED -typedef struct _tagPROTOCOL_ARGUMENT - { - LPCWSTR szMethod; - LPCWSTR szTargetUrl; - } PROTOCOL_ARGUMENT; - -typedef struct _tagPROTOCOL_ARGUMENT *LPPROTOCOL_ARGUMENT; - -#endif -#ifndef _LPBINDCALLBACKREDIRECT_DEFINED -#define _LPBINDCALLBACKREDIRECT_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0053_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0053_v0_0_s_ifspec; - -#ifndef __IBindCallbackRedirect_INTERFACE_DEFINED__ -#define __IBindCallbackRedirect_INTERFACE_DEFINED__ - -/* interface IBindCallbackRedirect */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IBindCallbackRedirect *LPBINDCALLBACKREDIRECT; - - -EXTERN_C const IID IID_IBindCallbackRedirect; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("11C81BC2-121E-4ed5-B9C4-B430BD54F2C0") - IBindCallbackRedirect : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Redirect( - /* [in] */ LPCWSTR lpcUrl, - /* [out] */ VARIANT_BOOL *vbCancel) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IBindCallbackRedirectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IBindCallbackRedirect * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IBindCallbackRedirect * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IBindCallbackRedirect * This); - - HRESULT ( STDMETHODCALLTYPE *Redirect )( - IBindCallbackRedirect * This, - /* [in] */ LPCWSTR lpcUrl, - /* [out] */ VARIANT_BOOL *vbCancel); - - END_INTERFACE - } IBindCallbackRedirectVtbl; - - interface IBindCallbackRedirect - { - CONST_VTBL struct IBindCallbackRedirectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IBindCallbackRedirect_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IBindCallbackRedirect_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IBindCallbackRedirect_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IBindCallbackRedirect_Redirect(This,lpcUrl,vbCancel) \ - ( (This)->lpVtbl -> Redirect(This,lpcUrl,vbCancel) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IBindCallbackRedirect_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0054 */ -/* [local] */ - -#endif -#ifndef _LPIBINDHTTPSECURITY_DEFINED -#define _LPIBINDHTTPSECURITY_DEFINED - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0054_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0054_v0_0_s_ifspec; - -#ifndef __IBindHttpSecurity_INTERFACE_DEFINED__ -#define __IBindHttpSecurity_INTERFACE_DEFINED__ - -/* interface IBindHttpSecurity */ -/* [helpstring][uuid][object] */ - - -EXTERN_C const IID IID_IBindHttpSecurity; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a9eda967-f50e-4a33-b358-206f6ef3086d") - IBindHttpSecurity : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetIgnoreCertMask( - /* [ref][out] */ __RPC__out DWORD *pdwIgnoreCertMask) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IBindHttpSecurityVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - __RPC__in IBindHttpSecurity * This, - /* [in] */ __RPC__in REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - __RPC__in IBindHttpSecurity * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - __RPC__in IBindHttpSecurity * This); - - HRESULT ( STDMETHODCALLTYPE *GetIgnoreCertMask )( - __RPC__in IBindHttpSecurity * This, - /* [ref][out] */ __RPC__out DWORD *pdwIgnoreCertMask); - - END_INTERFACE - } IBindHttpSecurityVtbl; - - interface IBindHttpSecurity - { - CONST_VTBL struct IBindHttpSecurityVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IBindHttpSecurity_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IBindHttpSecurity_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IBindHttpSecurity_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IBindHttpSecurity_GetIgnoreCertMask(This,pdwIgnoreCertMask) \ - ( (This)->lpVtbl -> GetIgnoreCertMask(This,pdwIgnoreCertMask) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IBindHttpSecurity_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_urlmon_0000_0055 */ -/* [local] */ - -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -#if _MSC_VER >= 1200 -#pragma warning(pop) -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0055_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0055_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -unsigned long __RPC_USER BSTR_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); -void __RPC_USER BSTR_UserFree( __RPC__in unsigned long *, __RPC__in BSTR * ); - -unsigned long __RPC_USER HWND_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in HWND * ); -unsigned char * __RPC_USER HWND_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HWND * ); -unsigned char * __RPC_USER HWND_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HWND * ); -void __RPC_USER HWND_UserFree( __RPC__in unsigned long *, __RPC__in HWND * ); - -unsigned long __RPC_USER BSTR_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); -unsigned char * __RPC_USER BSTR_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); -void __RPC_USER BSTR_UserFree64( __RPC__in unsigned long *, __RPC__in BSTR * ); - -unsigned long __RPC_USER HWND_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in HWND * ); -unsigned char * __RPC_USER HWND_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HWND * ); -unsigned char * __RPC_USER HWND_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HWND * ); -void __RPC_USER HWND_UserFree64( __RPC__in unsigned long *, __RPC__in HWND * ); - -/* [local] */ HRESULT STDMETHODCALLTYPE IBinding_GetBindResult_Proxy( - IBinding * This, - /* [out] */ CLSID *pclsidProtocol, - /* [out] */ DWORD *pdwResult, - /* [annotation][out] */ - __RPC__out LPOLESTR *pszResult, - /* [out][in] */ DWORD *pdwReserved); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBinding_GetBindResult_Stub( - __RPC__in IBinding * This, - /* [out] */ __RPC__out CLSID *pclsidProtocol, - /* [out] */ __RPC__out DWORD *pdwResult, - /* [out] */ __RPC__deref_out_opt LPOLESTR *pszResult, - /* [in] */ DWORD dwReserved); - -/* [local] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_GetBindInfo_Proxy( - IBindStatusCallback * This, - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_GetBindInfo_Stub( - __RPC__in IBindStatusCallback * This, - /* [out] */ __RPC__out DWORD *grfBINDF, - /* [unique][out][in] */ __RPC__inout_opt RemBINDINFO *pbindinfo, - /* [unique][out][in] */ __RPC__inout_opt RemSTGMEDIUM *pstgmed); - -/* [local] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnDataAvailable_Proxy( - IBindStatusCallback * This, - /* [in] */ DWORD grfBSCF, - /* [in] */ DWORD dwSize, - /* [in] */ FORMATETC *pformatetc, - /* [in] */ STGMEDIUM *pstgmed); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnDataAvailable_Stub( - __RPC__in IBindStatusCallback * This, - /* [in] */ DWORD grfBSCF, - /* [in] */ DWORD dwSize, - /* [in] */ __RPC__in RemFORMATETC *pformatetc, - /* [in] */ __RPC__in RemSTGMEDIUM *pstgmed); - -/* [local] */ HRESULT STDMETHODCALLTYPE IBindStatusCallbackEx_GetBindInfoEx_Proxy( - IBindStatusCallbackEx * This, - /* [out] */ DWORD *grfBINDF, - /* [unique][out][in] */ BINDINFO *pbindinfo, - /* [out] */ DWORD *grfBINDF2, - /* [out] */ DWORD *pdwReserved); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindStatusCallbackEx_GetBindInfoEx_Stub( - __RPC__in IBindStatusCallbackEx * This, - /* [out] */ __RPC__out DWORD *grfBINDF, - /* [unique][out][in] */ __RPC__inout_opt RemBINDINFO *pbindinfo, - /* [unique][out][in] */ __RPC__inout_opt RemSTGMEDIUM *pstgmed, - /* [out] */ __RPC__out DWORD *grfBINDF2, - /* [out] */ __RPC__out DWORD *pdwReserved); - -/* [local] */ HRESULT STDMETHODCALLTYPE IWinInetInfo_QueryOption_Proxy( - IWinInetInfo * This, - /* [in] */ DWORD dwOption, - /* [size_is][out][in] */ LPVOID pBuffer, - /* [out][in] */ DWORD *pcbBuf); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IWinInetInfo_QueryOption_Stub( - __RPC__in IWinInetInfo * This, - /* [in] */ DWORD dwOption, - /* [size_is][out][in] */ __RPC__inout_ecount_full(*pcbBuf) BYTE *pBuffer, - /* [out][in] */ __RPC__inout DWORD *pcbBuf); - -/* [local] */ HRESULT STDMETHODCALLTYPE IWinInetHttpInfo_QueryInfo_Proxy( - IWinInetHttpInfo * This, - /* [in] */ DWORD dwOption, - /* [size_is][out][in] */ LPVOID pBuffer, - /* [out][in] */ DWORD *pcbBuf, - /* [out][in] */ DWORD *pdwFlags, - /* [out][in] */ DWORD *pdwReserved); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IWinInetHttpInfo_QueryInfo_Stub( - __RPC__in IWinInetHttpInfo * This, - /* [in] */ DWORD dwOption, - /* [size_is][out][in] */ __RPC__inout_ecount_full(*pcbBuf) BYTE *pBuffer, - /* [out][in] */ __RPC__inout DWORD *pcbBuf, - /* [out][in] */ __RPC__inout DWORD *pdwFlags, - /* [out][in] */ __RPC__inout DWORD *pdwReserved); - -/* [local] */ HRESULT STDMETHODCALLTYPE IBindHost_MonikerBindToStorage_Proxy( - IBindHost * This, - /* [in] */ IMoniker *pMk, - /* [in] */ IBindCtx *pBC, - /* [in] */ IBindStatusCallback *pBSC, - /* [in] */ REFIID riid, - /* [out] */ void **ppvObj); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindHost_MonikerBindToStorage_Stub( - __RPC__in IBindHost * This, - /* [unique][in] */ __RPC__in_opt IMoniker *pMk, - /* [unique][in] */ __RPC__in_opt IBindCtx *pBC, - /* [unique][in] */ __RPC__in_opt IBindStatusCallback *pBSC, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObj); - -/* [local] */ HRESULT STDMETHODCALLTYPE IBindHost_MonikerBindToObject_Proxy( - IBindHost * This, - /* [in] */ IMoniker *pMk, - /* [in] */ IBindCtx *pBC, - /* [in] */ IBindStatusCallback *pBSC, - /* [in] */ REFIID riid, - /* [out] */ void **ppvObj); - - -/* [call_as] */ HRESULT STDMETHODCALLTYPE IBindHost_MonikerBindToObject_Stub( - __RPC__in IBindHost * This, - /* [unique][in] */ __RPC__in_opt IMoniker *pMk, - /* [unique][in] */ __RPC__in_opt IBindCtx *pBC, - /* [unique][in] */ __RPC__in_opt IBindStatusCallback *pBSC, - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out_opt IUnknown **ppvObj); - - - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/custom/winsdk/include/um/winnt.h b/src/custom/winsdk/include/um/winnt.h deleted file mode 100644 index b6eb3e0..0000000 --- a/src/custom/winsdk/include/um/winnt.h +++ /dev/null @@ -1,22766 +0,0 @@ -/*++ BUILD Version: 0073 Increment this if a change has global effects - -Copyright (c) Microsoft Corporation. All rights reserved. - -Module Name: - - winnt.h - -Abstract: - - This module defines the 32-Bit Windows types and constants that are - defined by NT, but exposed through the Win32 API. - -Revision History: - ---*/ - -#ifndef _WINNT_ -#define _WINNT_ - -#if _MSC_VER >= 1200 -#pragma warning(push) -#pragma warning(disable:4668) // #if not_defined treated as #if 0 -#pragma warning(disable:4820) // padded added -#endif -#pragma warning(disable:4200) // nonstandard extension used : zero-sized array in struct/union -#pragma warning(disable:4201) // named type definition in parentheses -#pragma warning(disable:4214) // bit field types other than int - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -// -// Anywhere that NOINITALL is defined, warning 4845 should be disabled. This warning -// fires whenever __declspec(no_init_all) is found but /d1initall isn't set. This isn't -// helpful since this will be done intentionally (not all components opt-in). -// - -#if (_MSC_VER >= 1915) -#pragma warning(disable:4845) // __declspec(no_init_all) used but d1initall not set -#endif - -#ifndef DECLSPEC_NOINITALL -#if (_MSC_VER >= 1915) && !defined(MIDL_PASS) -#define DECLSPEC_NOINITALL __declspec(no_init_all) -#else -#define DECLSPEC_NOINITALL -#endif -#endif - -#define ANYSIZE_ARRAY 1 - -// -// For compilers that don't support nameless unions/structs -// -#ifndef DUMMYUNIONNAME -#if defined(NONAMELESSUNION) || !defined(_MSC_EXTENSIONS) -#define DUMMYUNIONNAME u -#define DUMMYUNIONNAME2 u2 -#define DUMMYUNIONNAME3 u3 -#define DUMMYUNIONNAME4 u4 -#define DUMMYUNIONNAME5 u5 -#define DUMMYUNIONNAME6 u6 -#define DUMMYUNIONNAME7 u7 -#define DUMMYUNIONNAME8 u8 -#define DUMMYUNIONNAME9 u9 -#else -#define DUMMYUNIONNAME -#define DUMMYUNIONNAME2 -#define DUMMYUNIONNAME3 -#define DUMMYUNIONNAME4 -#define DUMMYUNIONNAME5 -#define DUMMYUNIONNAME6 -#define DUMMYUNIONNAME7 -#define DUMMYUNIONNAME8 -#define DUMMYUNIONNAME9 -#endif -#endif // DUMMYUNIONNAME - -#ifndef DUMMYSTRUCTNAME -#if defined(NONAMELESSUNION) || !defined(_MSC_EXTENSIONS) -#define DUMMYSTRUCTNAME s -#define DUMMYSTRUCTNAME2 s2 -#define DUMMYSTRUCTNAME3 s3 -#define DUMMYSTRUCTNAME4 s4 -#define DUMMYSTRUCTNAME5 s5 -#define DUMMYSTRUCTNAME6 s6 -#else -#define DUMMYSTRUCTNAME -#define DUMMYSTRUCTNAME2 -#define DUMMYSTRUCTNAME3 -#define DUMMYSTRUCTNAME4 -#define DUMMYSTRUCTNAME5 -#define DUMMYSTRUCTNAME6 -#endif -#endif // DUMMYSTRUCTNAME - -// end_ntoshvp - -#include -#include - -#if defined(STRICT_GS_ENABLED) -#pragma strict_gs_check(push, on) -#endif - -// begin_ntoshvp - -#if defined(_M_MRX000) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) && defined(ENABLE_RESTRICTED) -#define RESTRICTED_POINTER __restrict -#else -#define RESTRICTED_POINTER -#endif - -#if defined(_M_MRX000) || defined(_M_ALPHA) || defined(_M_PPC) || defined(_M_IA64) || defined(_M_AMD64) || defined(_M_ARM) || defined(_M_ARM64) -#define ALIGNMENT_MACHINE -#define UNALIGNED __unaligned -#if defined(_WIN64) -#define UNALIGNED64 __unaligned -#else -#define UNALIGNED64 -#endif -#else -#undef ALIGNMENT_MACHINE -#define UNALIGNED -#define UNALIGNED64 -#endif - -// end_ntoshvp - - -#if defined(_WIN64) || defined(_M_ALPHA) -#define MAX_NATURAL_ALIGNMENT sizeof(ULONGLONG) -#define MEMORY_ALLOCATION_ALIGNMENT 16 -#else -#define MAX_NATURAL_ALIGNMENT sizeof(DWORD) -#define MEMORY_ALLOCATION_ALIGNMENT 8 -#endif - -// -// TYPE_ALIGNMENT will return the alignment requirements of a given type for -// the current platform. -// - -#ifdef __cplusplus -#if _MSC_VER >= 1300 -#define TYPE_ALIGNMENT( t ) __alignof(t) -#endif -#else -#define TYPE_ALIGNMENT( t ) \ - FIELD_OFFSET( struct { char x; t test; }, test ) -#endif - -// -// Note: RC_INVOKED is checked in PROBE_ALIGNMENT to maintain compatibility with previous -// versions of the SDK which did not block inclusion in an .RC file. -// - -#if defined(_AMD64_) || defined(_X86_) -#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD ) -#elif defined(_IA64_) || defined(_ARM_) || defined(_ARM64_) - -// -// TODO: WOWXX - Unblock ARM. Make all alignment checks DWORD for now. -// - -#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD ) -#elif !defined(RC_INVOKED) -#error "No Target Architecture" -#endif - -// -// Define PROBE_ALIGNMENT32 to be the same as PROBE_ALIGNMENT on x86, so that -// code hosting x86 under WoW can handle x86's maximum guaranteed alignment. -// - -#define PROBE_ALIGNMENT32( _s ) TYPE_ALIGNMENT( DWORD ) - -// begin_ntoshvp - -// -// C_ASSERT() can be used to perform many compile-time assertions: -// type sizes, field offsets, etc. -// -// An assertion failure results in error C2118: negative subscript. -// - -#ifndef SORTPP_PASS -#define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] -#else -#define C_ASSERT(e) /* nothing */ -#endif - -#include - - -#ifndef DECLSPEC_IMPORT -#if (defined(_M_IX86) || defined(_M_IA64) || defined(_M_AMD64) || defined(_M_ARM) || defined(_M_ARM64)) && !defined(MIDL_PASS) -#define DECLSPEC_IMPORT __declspec(dllimport) -#else -#define DECLSPEC_IMPORT -#endif -#endif - -#ifndef DECLSPEC_NORETURN -#if (_MSC_VER >= 1200) && !defined(MIDL_PASS) -#define DECLSPEC_NORETURN __declspec(noreturn) -#else -#define DECLSPEC_NORETURN -#endif -#endif - -#ifndef DECLSPEC_NOTHROW -#if (_MSC_VER >= 1200) && !defined(MIDL_PASS) -#define DECLSPEC_NOTHROW __declspec(nothrow) -#else -#define DECLSPEC_NOTHROW -#endif -#endif - -#ifndef DECLSPEC_ALIGN -#if (_MSC_VER >= 1300) && !defined(MIDL_PASS) -#define DECLSPEC_ALIGN(x) __declspec(align(x)) -#else -#define DECLSPEC_ALIGN(x) -#endif -#endif - -// end_ntoshvp - -#ifndef SYSTEM_CACHE_ALIGNMENT_SIZE -#if defined(_AMD64_) || defined(_X86_) -#define SYSTEM_CACHE_ALIGNMENT_SIZE 64 -#else -#define SYSTEM_CACHE_ALIGNMENT_SIZE 128 -#endif -#endif - -#ifndef DECLSPEC_CACHEALIGN -#define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(SYSTEM_CACHE_ALIGNMENT_SIZE) -#endif - -#ifndef DECLSPEC_UUID -#if (_MSC_VER >= 1100) && defined (__cplusplus) -#define DECLSPEC_UUID(x) __declspec(uuid(x)) -#else -#define DECLSPEC_UUID(x) -#endif -#endif - -#ifndef DECLSPEC_NOVTABLE -#if (_MSC_VER >= 1100) && defined(__cplusplus) -#define DECLSPEC_NOVTABLE __declspec(novtable) -#else -#define DECLSPEC_NOVTABLE -#endif -#endif - -#ifndef DECLSPEC_SELECTANY -#if (_MSC_VER >= 1100) -#define DECLSPEC_SELECTANY __declspec(selectany) -#else -#define DECLSPEC_SELECTANY -#endif -#endif - -#ifndef NOP_FUNCTION -#if (_MSC_VER >= 1210) -#define NOP_FUNCTION __noop -#else -#define NOP_FUNCTION (void)0 -#endif -#endif - -#ifndef DECLSPEC_ADDRSAFE -#if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64)) -#define DECLSPEC_ADDRSAFE __declspec(address_safe) -#else -#define DECLSPEC_ADDRSAFE -#endif -#endif - -#ifndef DECLSPEC_SAFEBUFFERS -#if (_MSC_VER >= 1600) -#define DECLSPEC_SAFEBUFFERS __declspec(safebuffers) -#else -#define DECLSPEC_SAFEBUFFERS -#endif -#endif - -#ifndef DECLSPEC_NOINLINE -#if (_MSC_VER >= 1300) -#define DECLSPEC_NOINLINE __declspec(noinline) -#else -#define DECLSPEC_NOINLINE -#endif -#endif - -#ifndef DECLSPEC_SAFEBUFFERS -#if (_MSC_VER >= 1300) -#define DECLSPEC_SAFEBUFFERS __declspec(safebuffers) -#else -#define DECLSPEC_SAFEBUFFERS -#endif -#endif - - -#ifndef DECLSPEC_GUARDNOCF -#if (_MSC_FULL_VER >= 170065501) || defined(_D1VERSIONLKG171_) -#define DECLSPEC_GUARDNOCF __declspec(guard(nocf)) -#else -#define DECLSPEC_GUARDNOCF -#endif -#endif - -#ifndef DECLSPEC_GUARD_SUPPRESS -#if (_MSC_FULL_VER >= 181040116) || defined(_D1VERSIONLKG171_) -#define DECLSPEC_GUARD_SUPPRESS __declspec(guard(suppress)) -#else -#define DECLSPEC_GUARD_SUPPRESS -#endif -#endif - -#ifndef DECLSPEC_CHPE_GUEST -#if _M_HYBRID -#define DECLSPEC_CHPE_GUEST __declspec(hybrid_guest) -#else -#define DECLSPEC_CHPE_GUEST -#endif -#endif - -#ifndef DECLSPEC_CHPE_PATCHABLE -#if _M_HYBRID -#define DECLSPEC_CHPE_PATCHABLE __declspec(hybrid_patchable) -#else -#define DECLSPEC_CHPE_PATCHABLE -#endif -#endif - -// begin_ntoshvp - -#ifndef FORCEINLINE -#if (_MSC_VER >= 1200) -#define FORCEINLINE __forceinline -#else -#define FORCEINLINE __inline -#endif -#endif - -// -// CFORCEINLINE: __forceinline required for correctness. -// - -#define CFORCEINLINE FORCEINLINE - -// -// STKFORCEINLINE: __forceinline required for correctness due to counting stack -// frames for a stack trace being captured. -// - -#define STKFORCEINLINE FORCEINLINE - -// -// PFORCEINLINE: __forceinline required for performance. -// - -#ifndef PFORCEINLINE -#define PFORCEINLINE FORCEINLINE -#endif - -// end_ntoshvp - -#ifndef DECLSPEC_DEPRECATED -#if (_MSC_VER >= 1300) && !defined(MIDL_PASS) -#define DECLSPEC_DEPRECATED __declspec(deprecated) -#define DEPRECATE_SUPPORTED -#else -#define DECLSPEC_DEPRECATED -#undef DEPRECATE_SUPPORTED -#endif -#endif - -#ifdef DEPRECATE_DDK_FUNCTIONS -#ifdef _NTDDK_ -#define DECLSPEC_DEPRECATED_DDK DECLSPEC_DEPRECATED -#ifdef DEPRECATE_SUPPORTED -#define PRAGMA_DEPRECATED_DDK 1 -#endif -#else -#define DECLSPEC_DEPRECATED_DDK -#define PRAGMA_DEPRECATED_DDK 1 -#endif -#else -#define DECLSPEC_DEPRECATED_DDK -#define PRAGMA_DEPRECATED_DDK 0 -#endif - -// begin_ntoshvp - -// -// Void -// - -typedef void *PVOID; -typedef void * POINTER_64 PVOID64; - - -#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) -#define NTAPI __stdcall -#else -#define _cdecl -#define __cdecl -#define NTAPI -#endif - -#if !defined(_M_CEE_PURE) -#define NTAPI_INLINE NTAPI -#else -#define NTAPI_INLINE -#endif - -// -// Define API decoration for direct importing system DLL references. -// - -#if !defined(_NTSYSTEM_) -#define NTSYSAPI DECLSPEC_IMPORT -#define NTSYSCALLAPI DECLSPEC_IMPORT -#else -#define NTSYSAPI -#if defined(_NTDLLBUILD_) -#define NTSYSCALLAPI -#else -#define NTSYSCALLAPI DECLSPEC_ADDRSAFE -#endif - -#endif - - -// -// Basics -// - -#ifndef VOID -#define VOID void -typedef char CHAR; -typedef short SHORT; -typedef long LONG; -#if !defined(MIDL_PASS) -typedef int INT; -#endif -#endif - -// -// UNICODE (Wide Character) types -// - -#ifndef _MAC -typedef wchar_t WCHAR; // wc, 16-bit UNICODE character -#else -// some Macintosh compilers don't define wchar_t in a convenient location, or define it as a char -typedef unsigned short WCHAR; // wc, 16-bit UNICODE character -#endif - -typedef WCHAR *PWCHAR, *LPWCH, *PWCH; -typedef CONST WCHAR *LPCWCH, *PCWCH; - -typedef _Null_terminated_ WCHAR *NWPSTR, *LPWSTR, *PWSTR; -typedef _Null_terminated_ PWSTR *PZPWSTR; -typedef _Null_terminated_ CONST PWSTR *PCZPWSTR; -typedef _Null_terminated_ WCHAR UNALIGNED *LPUWSTR, *PUWSTR; -typedef _Null_terminated_ CONST WCHAR *LPCWSTR, *PCWSTR; -typedef _Null_terminated_ PCWSTR *PZPCWSTR; -typedef _Null_terminated_ CONST PCWSTR *PCZPCWSTR; -typedef _Null_terminated_ CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR; - -typedef _NullNull_terminated_ WCHAR *PZZWSTR; -typedef _NullNull_terminated_ CONST WCHAR *PCZZWSTR; -typedef _NullNull_terminated_ WCHAR UNALIGNED *PUZZWSTR; -typedef _NullNull_terminated_ CONST WCHAR UNALIGNED *PCUZZWSTR; - -typedef WCHAR *PNZWCH; -typedef CONST WCHAR *PCNZWCH; -typedef WCHAR UNALIGNED *PUNZWCH; -typedef CONST WCHAR UNALIGNED *PCUNZWCH; - -#if _WIN32_WINNT >= 0x0600 || (defined(__cplusplus) && defined(WINDOWS_ENABLE_CPLUSPLUS)) - -typedef CONST WCHAR *LPCWCHAR, *PCWCHAR; -typedef CONST WCHAR UNALIGNED *LPCUWCHAR, *PCUWCHAR; - -// -// UCS (Universal Character Set) types -// - -typedef unsigned long UCSCHAR; - -// -// Even pre-Unicode agreement, UCS values are always in the -// range U+00000000 to U+7FFFFFFF, so we'll pick an obvious -// value. - -#define UCSCHAR_INVALID_CHARACTER (0xffffffff) - -#define MIN_UCSCHAR (0) - -// -// We'll assume here that the ISO-10646 / Unicode agreement -// not to assign code points after U+0010FFFF holds so that -// we do not have to have separate "UCSCHAR" and "UNICODECHAR" -// types. -// - -#define MAX_UCSCHAR (0x0010FFFF) - -typedef UCSCHAR *PUCSCHAR; -typedef const UCSCHAR *PCUCSCHAR; - -typedef UCSCHAR *PUCSSTR; -typedef UCSCHAR UNALIGNED *PUUCSSTR; - -typedef const UCSCHAR *PCUCSSTR; -typedef const UCSCHAR UNALIGNED *PCUUCSSTR; - -typedef UCSCHAR UNALIGNED *PUUCSCHAR; -typedef const UCSCHAR UNALIGNED *PCUUCSCHAR; - -#endif // _WIN32_WINNT >= 0x0600 - - -// -// ANSI (Multi-byte Character) types -// -typedef CHAR *PCHAR, *LPCH, *PCH; -typedef CONST CHAR *LPCCH, *PCCH; - -typedef _Null_terminated_ CHAR *NPSTR, *LPSTR, *PSTR; -typedef _Null_terminated_ PSTR *PZPSTR; -typedef _Null_terminated_ CONST PSTR *PCZPSTR; -typedef _Null_terminated_ CONST CHAR *LPCSTR, *PCSTR; -typedef _Null_terminated_ PCSTR *PZPCSTR; -typedef _Null_terminated_ CONST PCSTR *PCZPCSTR; - -typedef _NullNull_terminated_ CHAR *PZZSTR; -typedef _NullNull_terminated_ CONST CHAR *PCZZSTR; - -typedef CHAR *PNZCH; -typedef CONST CHAR *PCNZCH; - -// -// Neutral ANSI/UNICODE types and macros -// -#ifdef UNICODE // r_winnt - -#ifndef _TCHAR_DEFINED -typedef WCHAR TCHAR, *PTCHAR; -typedef WCHAR TBYTE , *PTBYTE ; -#define _TCHAR_DEFINED -#endif /* !_TCHAR_DEFINED */ - -typedef LPWCH LPTCH, PTCH; -typedef LPCWCH LPCTCH, PCTCH; -typedef LPWSTR PTSTR, LPTSTR; -typedef LPCWSTR PCTSTR, LPCTSTR; -typedef LPUWSTR PUTSTR, LPUTSTR; -typedef LPCUWSTR PCUTSTR, LPCUTSTR; -typedef LPWSTR LP; -typedef PZZWSTR PZZTSTR; -typedef PCZZWSTR PCZZTSTR; -typedef PUZZWSTR PUZZTSTR; -typedef PCUZZWSTR PCUZZTSTR; -typedef PZPWSTR PZPTSTR; -typedef PNZWCH PNZTCH; -typedef PCNZWCH PCNZTCH; -typedef PUNZWCH PUNZTCH; -typedef PCUNZWCH PCUNZTCH; -#define __TEXT(quote) L##quote // r_winnt - -#else /* UNICODE */ // r_winnt - -#ifndef _TCHAR_DEFINED -typedef char TCHAR, *PTCHAR; -typedef unsigned char TBYTE , *PTBYTE ; -#define _TCHAR_DEFINED -#endif /* !_TCHAR_DEFINED */ - -typedef LPCH LPTCH, PTCH; -typedef LPCCH LPCTCH, PCTCH; -typedef LPSTR PTSTR, LPTSTR, PUTSTR, LPUTSTR; -typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR; -typedef PZZSTR PZZTSTR, PUZZTSTR; -typedef PCZZSTR PCZZTSTR, PCUZZTSTR; -typedef PZPSTR PZPTSTR; -typedef PNZCH PNZTCH, PUNZTCH; -typedef PCNZCH PCNZTCH, PCUNZTCH; -#define __TEXT(quote) quote // r_winnt - -#endif /* UNICODE */ // r_winnt -#define TEXT(quote) __TEXT(quote) // r_winnt - - -typedef SHORT *PSHORT; -typedef LONG *PLONG; - -#define ALL_PROCESSOR_GROUPS 0xffff - -// -// Structure to represent a system wide processor number. It contains a -// group number and relative processor number within the group. -// - -typedef struct _PROCESSOR_NUMBER { - WORD Group; - BYTE Number; - BYTE Reserved; -} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER; - -// -// Structure to represent a group-specific affinity, such as that of a -// thread. Specifies the group number and the affinity within that group. -// - -typedef struct _GROUP_AFFINITY { - KAFFINITY Mask; - WORD Group; - WORD Reserved[3]; -} GROUP_AFFINITY, *PGROUP_AFFINITY; - -#if defined(_WIN64) - -#define MAXIMUM_PROC_PER_GROUP 64 - -#else - -#define MAXIMUM_PROC_PER_GROUP 32 - -#endif - -#define MAXIMUM_PROCESSORS MAXIMUM_PROC_PER_GROUP - -// begin_ntoshvp - -// -// Handle to an Object -// - -#ifdef STRICT -typedef void *HANDLE; -#if 0 && (_MSC_VER > 1000) -#define DECLARE_HANDLE(name) struct name##__; typedef struct name##__ *name -#else -#define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name -#endif -#else -typedef PVOID HANDLE; -#define DECLARE_HANDLE(name) typedef HANDLE name -#endif -typedef HANDLE *PHANDLE; - -// end_ntoshvp - -// -// Flag (bit) fields -// - -typedef BYTE FCHAR; -typedef WORD FSHORT; -typedef DWORD FLONG; - -// begin_ntoshvp - -// Component Object Model defines, and macros - -#ifndef _HRESULT_DEFINED -#define _HRESULT_DEFINED -#ifdef __midl -typedef LONG HRESULT; -#else -typedef _Return_type_success_(return >= 0) long HRESULT; -#endif // __midl -#endif // !_HRESULT_DEFINED - -// end_ntoshvp - -#ifdef __cplusplus - #define EXTERN_C extern "C" - #define EXTERN_C_START extern "C" { - #define EXTERN_C_END } -#else - #define EXTERN_C extern - #define EXTERN_C_START - #define EXTERN_C_END -#endif - -#if defined(_WIN32) || defined(_MPPC_) - -// Win32 doesn't support __export - -#ifdef _68K_ -#define STDMETHODCALLTYPE __cdecl -#else -#define STDMETHODCALLTYPE __stdcall -#endif -#define STDMETHODVCALLTYPE __cdecl - -#define STDAPICALLTYPE __stdcall -#define STDAPIVCALLTYPE __cdecl - -#else - -#define STDMETHODCALLTYPE __export __stdcall -#define STDMETHODVCALLTYPE __export __cdecl - -#define STDAPICALLTYPE __export __stdcall -#define STDAPIVCALLTYPE __export __cdecl - -#endif - - -#define STDAPI EXTERN_C HRESULT STDAPICALLTYPE -#define STDAPI_(type) EXTERN_C type STDAPICALLTYPE - -#define STDMETHODIMP HRESULT STDMETHODCALLTYPE -#define STDMETHODIMP_(type) type STDMETHODCALLTYPE - -#define STDOVERRIDEMETHODIMP __override STDMETHODIMP -#define STDOVERRIDEMETHODIMP_(type) __override STDMETHODIMP_(type) - -#define IFACEMETHODIMP __override STDMETHODIMP -#define IFACEMETHODIMP_(type) __override STDMETHODIMP_(type) - -// The 'V' versions allow Variable Argument lists. - -#define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE -#define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE - -#define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE -#define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE - -#define STDOVERRIDEMETHODIMPV __override STDMETHODIMPV -#define STDOVERRIDEMETHODIMPV_(type) __override STDMETHODIMPV_(type) - -#define IFACEMETHODIMPV __override STDMETHODIMPV -#define IFACEMETHODIMPV_(type) __override STDMETHODIMPV_(type) - -typedef char CCHAR; -typedef DWORD LCID; -typedef PDWORD PLCID; -typedef WORD LANGID; - -#ifndef __COMPARTMENT_ID_DEFINED__ -#define __COMPARTMENT_ID_DEFINED__ - -// -// Compartment identifier -// - -typedef enum { - UNSPECIFIED_COMPARTMENT_ID = 0, - DEFAULT_COMPARTMENT_ID -} COMPARTMENT_ID, *PCOMPARTMENT_ID; - -#endif // __COMPARTMENT_ID_DEFINED__ - -#define APPLICATION_ERROR_MASK 0x20000000 -#define ERROR_SEVERITY_SUCCESS 0x00000000 -#define ERROR_SEVERITY_INFORMATIONAL 0x40000000 -#define ERROR_SEVERITY_WARNING 0x80000000 -#define ERROR_SEVERITY_ERROR 0xC0000000 -// begin_ntoshvp - -// -// _M_IX86 included so that EM CONTEXT structure compiles with -// x86 programs. *** TBD should this be for all architectures? -// - -// -// 16 byte aligned type for 128 bit floats -// - -// -// For we define a 128 bit structure and use __declspec(align(16)) pragma to -// align to 128 bits. -// - -#if defined(_M_IA64) && !defined(MIDL_PASS) -__declspec(align(16)) -#endif -typedef struct _FLOAT128 { - __int64 LowPart; - __int64 HighPart; -} FLOAT128; - -typedef FLOAT128 *PFLOAT128; - - -// -// __int64 is only supported by 2.0 and later midl. -// __midl is set by the 2.0 midl and not by 1.0 midl. -// - -#define _ULONGLONG_ -#if (!defined (_MAC) && (!defined(MIDL_PASS) || defined(__midl)) && (!defined(_M_IX86) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64))) -typedef __int64 LONGLONG; -typedef unsigned __int64 ULONGLONG; - -#define MAXLONGLONG (0x7fffffffffffffff) - - -#else - -#if defined(_MAC) && defined(_MAC_INT_64) -typedef __int64 LONGLONG; -typedef unsigned __int64 ULONGLONG; - -#define MAXLONGLONG (0x7fffffffffffffff) - - -#else -typedef double LONGLONG; -typedef double ULONGLONG; -#endif //_MAC and int64 - -#endif - -typedef LONGLONG *PLONGLONG; -typedef ULONGLONG *PULONGLONG; - -// Update Sequence Number - -typedef LONGLONG USN; - -#if defined(MIDL_PASS) -typedef struct _LARGE_INTEGER { - LONGLONG QuadPart; -} LARGE_INTEGER; -#else // MIDL_PASS -typedef union _LARGE_INTEGER { - struct { - DWORD LowPart; - LONG HighPart; - } DUMMYSTRUCTNAME; - struct { - DWORD LowPart; - LONG HighPart; - } u; - LONGLONG QuadPart; -} LARGE_INTEGER; -#endif //MIDL_PASS - -typedef LARGE_INTEGER *PLARGE_INTEGER; - -#if defined(MIDL_PASS) -typedef struct _ULARGE_INTEGER { - ULONGLONG QuadPart; -} ULARGE_INTEGER; -#else // MIDL_PASS -typedef union _ULARGE_INTEGER { - struct { - DWORD LowPart; - DWORD HighPart; - } DUMMYSTRUCTNAME; - struct { - DWORD LowPart; - DWORD HighPart; - } u; - ULONGLONG QuadPart; -} ULARGE_INTEGER; -#endif //MIDL_PASS - -typedef ULARGE_INTEGER *PULARGE_INTEGER; - -// -// Reference count. -// - -typedef LONG_PTR RTL_REFERENCE_COUNT, *PRTL_REFERENCE_COUNT; -typedef LONG RTL_REFERENCE_COUNT32, *PRTL_REFERENCE_COUNT32; - -// end_ntminiport end_ntndis end_ntminitape -// end_ntoshvp - - -// -// Locally Unique Identifier -// - -typedef struct _LUID { - DWORD LowPart; - LONG HighPart; -} LUID, *PLUID; - -#define _DWORDLONG_ -typedef ULONGLONG DWORDLONG; -typedef DWORDLONG *PDWORDLONG; - - -// -// Define operations to logically shift an int64 by 0..31 bits and to multiply -// 32-bits by 32-bits to form a 64-bit product. -// - -#if defined(MIDL_PASS) || defined(RC_INVOKED) || defined(_M_CEE_PURE) \ - || defined(_68K_) || defined(_MPPC_) \ - || defined(_M_IA64) || defined(_M_AMD64) || defined(_M_ARM) || defined(_M_ARM64) \ - || defined(_M_HYBRID_X86_ARM64) - -// -// Midl does not understand inline assembler. Therefore, the Rtl functions -// are used for shifts by 0..31 and multiplies of 32-bits times 32-bits to -// form a 64-bit product. -// -// -// IA64 and AMD64 have native 64-bit operations that are just as fast as their -// 32-bit counter parts. Therefore, the int64 data type is used directly to form -// shifts of 0..31 and multiplies of 32-bits times 32-bits to form a 64-bit -// product. -// - -#define Int32x32To64(a, b) (((__int64)((long)(a))) * ((__int64)((long)(b)))) -#define UInt32x32To64(a, b) (((unsigned __int64)((unsigned int)(a))) * ((unsigned __int64)((unsigned int)(b)))) - -#define Int64ShllMod32(a, b) (((unsigned __int64)(a)) << (b)) -#define Int64ShraMod32(a, b) (((__int64)(a)) >> (b)) -#define Int64ShrlMod32(a, b) (((unsigned __int64)(a)) >> (b)) - - -#elif defined(_M_IX86) - -// -// The x86 C compiler understands inline assembler. Therefore, inline functions -// that employ inline assembler are used for shifts of 0..31. The multiplies -// rely on the compiler recognizing the cast of the multiplicand to int64 to -// generate the optimal code inline. -// - -#define Int32x32To64(a, b) ((__int64)(((__int64)((long)(a))) * ((long)(b)))) -#define UInt32x32To64(a, b) ((unsigned __int64)(((unsigned __int64)((unsigned int)(a))) * ((unsigned int)(b)))) - - -ULONGLONG -NTAPI -Int64ShllMod32 ( - _In_ ULONGLONG Value, - _In_ DWORD ShiftCount - ); - -LONGLONG -NTAPI -Int64ShraMod32 ( - _In_ LONGLONG Value, - _In_ DWORD ShiftCount - ); - -ULONGLONG -NTAPI -Int64ShrlMod32 ( - _In_ ULONGLONG Value, - _In_ DWORD ShiftCount - ); - -#if _MSC_VER >= 1200 -#pragma warning(push) -#endif -#pragma warning(disable:4035 4793) // re-enable below - -__inline ULONGLONG -NTAPI -Int64ShllMod32 ( - _In_ ULONGLONG Value, - _In_ DWORD ShiftCount - ) -{ - __asm { - mov ecx, ShiftCount - mov eax, dword ptr [Value] - mov edx, dword ptr [Value+4] - shld edx, eax, cl - shl eax, cl - } -} - -__inline LONGLONG -NTAPI -Int64ShraMod32 ( - _In_ LONGLONG Value, - _In_ DWORD ShiftCount - ) -{ - __asm { - mov ecx, ShiftCount - mov eax, dword ptr [Value] - mov edx, dword ptr [Value+4] - shrd eax, edx, cl - sar edx, cl - } -} - -__inline ULONGLONG -NTAPI -Int64ShrlMod32 ( - _In_ ULONGLONG Value, - _In_ DWORD ShiftCount - ) -{ - __asm { - mov ecx, ShiftCount - mov eax, dword ptr [Value] - mov edx, dword ptr [Value+4] - shrd eax, edx, cl - shr edx, cl - } -} - -#if _MSC_VER >= 1200 -#pragma warning(pop) -#else -#pragma warning(default:4035 4793) -#endif - -#else - -#error Must define a target architecture. - -#endif - -// -// Define rotate intrinsics. -// - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(_M_AMD64) - -#define RotateLeft8 _rotl8 -#define RotateLeft16 _rotl16 -#define RotateRight8 _rotr8 -#define RotateRight16 _rotr16 - -unsigned char -__cdecl -_rotl8 ( - _In_ unsigned char Value, - _In_ unsigned char Shift - ); - -unsigned short -__cdecl -_rotl16 ( - _In_ unsigned short Value, - _In_ unsigned char Shift - ); - -unsigned char -__cdecl -_rotr8 ( - _In_ unsigned char Value, - _In_ unsigned char Shift - ); - -unsigned short -__cdecl -_rotr16 ( - _In_ unsigned short Value, - _In_ unsigned char Shift - ); - -#pragma intrinsic(_rotl8) -#pragma intrinsic(_rotl16) -#pragma intrinsic(_rotr8) -#pragma intrinsic(_rotr16) - -#endif /* _M_AMD64 */ - -#if _MSC_VER >= 1300 - -#define RotateLeft32 _rotl -#define RotateLeft64 _rotl64 -#define RotateRight32 _rotr -#define RotateRight64 _rotr64 - -unsigned int -__cdecl -_rotl ( - _In_ unsigned int Value, - _In_ int Shift - ); - -unsigned __int64 -__cdecl -_rotl64 ( - _In_ unsigned __int64 Value, - _In_ int Shift - ); - -unsigned int -__cdecl -_rotr ( - _In_ unsigned int Value, - _In_ int Shift - ); - -unsigned __int64 -__cdecl -_rotr64 ( - _In_ unsigned __int64 Value, - _In_ int Shift - ); - -#pragma intrinsic(_rotl) -#pragma intrinsic(_rotl64) -#pragma intrinsic(_rotr) -#pragma intrinsic(_rotr64) - -#endif /* _MSC_VER >= 1300 */ - -#ifdef __cplusplus -} -#endif - -#define ANSI_NULL ((CHAR)0) -#define UNICODE_NULL ((WCHAR)0) -#define UNICODE_STRING_MAX_BYTES ((WORD ) 65534) -#define UNICODE_STRING_MAX_CHARS (32767) -typedef BYTE BOOLEAN; -typedef BOOLEAN *PBOOLEAN; -// -// Doubly linked list structure. Can be used as either a list head, or -// as link words. -// - -typedef struct _LIST_ENTRY { - struct _LIST_ENTRY *Flink; - struct _LIST_ENTRY *Blink; -} LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY; - -// -// Singly linked list structure. Can be used as either a list head, or -// as link words. -// - -typedef struct _SINGLE_LIST_ENTRY { - struct _SINGLE_LIST_ENTRY *Next; -} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; - -// end_ntoshvp -// begin_ntoshvp - -// -// These are needed for portable debugger support. -// - -typedef struct LIST_ENTRY32 { - DWORD Flink; - DWORD Blink; -} LIST_ENTRY32; -typedef LIST_ENTRY32 *PLIST_ENTRY32; - -typedef struct LIST_ENTRY64 { - ULONGLONG Flink; - ULONGLONG Blink; -} LIST_ENTRY64; -typedef LIST_ENTRY64 *PLIST_ENTRY64; - - -#include - -#ifndef __OBJECTID_DEFINED -#define __OBJECTID_DEFINED - -typedef struct _OBJECTID { // size is 20 - GUID Lineage; - DWORD Uniquifier; -} OBJECTID; -#endif // !_OBJECTID_DEFINED - -#define MINCHAR 0x80 -#define MAXCHAR 0x7f -#define MINSHORT 0x8000 -#define MAXSHORT 0x7fff -#define MINLONG 0x80000000 -#define MAXLONG 0x7fffffff -#define MAXBYTE 0xff -#define MAXWORD 0xffff -#define MAXDWORD 0xffffffff -// begin_ntoshvp -// -// Calculate the byte offset of a field in a structure of type type. -// - -#define FIELD_OFFSET(type, field) ((LONG)(LONG_PTR)&(((type *)0)->field)) -#define UFIELD_OFFSET(type, field) ((DWORD)(LONG_PTR)&(((type *)0)->field)) - -// -// Calculate the size of a field in a structure of type type, without -// knowing or stating the type of the field. -// -#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field)) - -// -// Calculate the size of a structure of type type up through and -// including a field. -// -#define RTL_SIZEOF_THROUGH_FIELD(type, field) \ - (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field)) - -// end_ntoshvp - -// -// RTL_CONTAINS_FIELD usage: -// -// if (RTL_CONTAINS_FIELD(pBlock, pBlock->cbSize, dwMumble)) -// // safe to use pBlock->dwMumble -// -#define RTL_CONTAINS_FIELD(Struct, Size, Field) \ - ( (((PCHAR)(&(Struct)->Field)) + sizeof((Struct)->Field)) <= (((PCHAR)(Struct))+(Size)) ) - -// -// Return the number of elements in a statically sized array. -// DWORD Buffer[100]; -// RTL_NUMBER_OF(Buffer) == 100 -// This is also popularly known as: NUMBER_OF, ARRSIZE, _countof, NELEM, etc. -// -#define RTL_NUMBER_OF_V1(A) (sizeof(A)/sizeof((A)[0])) - -#if defined(__cplusplus) && \ - !defined(MIDL_PASS) && \ - !defined(RC_INVOKED) && \ - !defined(_PREFAST_) && \ - (_MSC_FULL_VER >= 13009466) && \ - !defined(SORTPP_PASS) -// -// RtlpNumberOf is a function that takes a reference to an array of N Ts. -// -// typedef T array_of_T[N]; -// typedef array_of_T &reference_to_array_of_T; -// -// RtlpNumberOf returns a pointer to an array of N chars. -// We could return a reference instead of a pointer but older compilers do not accept that. -// -// typedef char array_of_char[N]; -// typedef array_of_char *pointer_to_array_of_char; -// -// sizeof(array_of_char) == N -// sizeof(*pointer_to_array_of_char) == N -// -// pointer_to_array_of_char RtlpNumberOf(reference_to_array_of_T); -// -// We never even call RtlpNumberOf, we just take the size of dereferencing its return type. -// We do not even implement RtlpNumberOf, we just declare it. -// -// Attempts to pass pointers instead of arrays to this macro result in compile time errors. -// That is the point. -// - -// end_ntndis end_ntminiport - -#pragma region Application Family or OneCore Family Or Game Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -// begin_ntndis begin_ntminiport - -extern "C++" // templates cannot be declared to have 'C' linkage -template -char (*RtlpNumberOf( UNALIGNED T (&)[N] ))[N]; - -// end_ntndis end_ntminiport - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion - -// begin_ntndis begin_ntminiport - -#define RTL_NUMBER_OF_V2(A) (sizeof(*RtlpNumberOf(A))) - -// -// This does not work with: -// -// void Foo() -// { -// struct { int x; } y[2]; -// RTL_NUMBER_OF_V2(y); // illegal use of anonymous local type in template instantiation -// } -// -// You must instead do: -// -// struct Foo1 { int x; }; -// -// void Foo() -// { -// Foo1 y[2]; -// RTL_NUMBER_OF_V2(y); // ok -// } -// -// OR -// -// void Foo() -// { -// struct { int x; } y[2]; -// RTL_NUMBER_OF_V1(y); // ok -// } -// -// OR -// -// void Foo() -// { -// struct { int x; } y[2]; -// _ARRAYSIZE(y); // ok -// } -// - -#else -#define RTL_NUMBER_OF_V2(A) RTL_NUMBER_OF_V1(A) -#endif - -#ifdef ENABLE_RTL_NUMBER_OF_V2 -#define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V2(A) -#else -#define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V1(A) -#endif - -// -// ARRAYSIZE is more readable version of RTL_NUMBER_OF_V2, and uses -// it regardless of ENABLE_RTL_NUMBER_OF_V2 -// -// _ARRAYSIZE is a version useful for anonymous types -// -#define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A) -#define _ARRAYSIZE(A) RTL_NUMBER_OF_V1(A) - -// -// An expression that yields the type of a field in a struct. -// -#define RTL_FIELD_TYPE(type, field) (((type*)0)->field) - -// RTL_ to avoid collisions in the global namespace. -// -// Given typedef struct _FOO { BYTE Bar[123]; } FOO; -// RTL_NUMBER_OF_FIELD(FOO, Bar) == 123 -// -#define RTL_NUMBER_OF_FIELD(type, field) (RTL_NUMBER_OF(RTL_FIELD_TYPE(type, field))) - -// -// eg: -// typedef struct FOO { -// DWORD Integer; -// PVOID Pointer; -// } FOO; -// -// RTL_PADDING_BETWEEN_FIELDS(FOO, Integer, Pointer) == 0 for Win32, 4 for Win64 -// -#define RTL_PADDING_BETWEEN_FIELDS(T, F1, F2) \ - ((FIELD_OFFSET(T, F2) > FIELD_OFFSET(T, F1)) \ - ? (FIELD_OFFSET(T, F2) - FIELD_OFFSET(T, F1) - RTL_FIELD_SIZE(T, F1)) \ - : (FIELD_OFFSET(T, F1) - FIELD_OFFSET(T, F2) - RTL_FIELD_SIZE(T, F2))) - -// RTL_ to avoid collisions in the global namespace. -#if defined(__cplusplus) -#define RTL_CONST_CAST(type) const_cast -#else -#define RTL_CONST_CAST(type) (type) -#endif - - -// like sizeof -// usually this would be * CHAR_BIT, but we don't necessarily have #include -#define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) * 8) - -#define RTL_BITS_OF_FIELD(type, field) (RTL_BITS_OF(RTL_FIELD_TYPE(type, field))) - -// begin_ntoshvp - -// -// Calculate the address of the base of the structure given its type, and an -// address of a field within the structure. -// - -#define CONTAINING_RECORD(address, type, field) ((type *)( \ - (PCHAR)(address) - \ - (ULONG_PTR)(&((type *)0)->field))) - -// end_ntoshvp -// end_ntminiport end_ntndis - -// -// Exception handler routine definition. -// - -#include - -typedef -_IRQL_requires_same_ -_Function_class_(EXCEPTION_ROUTINE) -EXCEPTION_DISPOSITION -NTAPI -EXCEPTION_ROUTINE ( - _Inout_ struct _EXCEPTION_RECORD *ExceptionRecord, - _In_ PVOID EstablisherFrame, - _Inout_ struct _CONTEXT *ContextRecord, - _In_ PVOID DispatcherContext - ); - -typedef EXCEPTION_ROUTINE *PEXCEPTION_ROUTINE; - - -// -// Enclave ID definitions -// - -#define ENCLAVE_SHORT_ID_LENGTH 16 -#define ENCLAVE_LONG_ID_LENGTH 32 - - -#define VER_SERVER_NT 0x80000000 -#define VER_WORKSTATION_NT 0x40000000 -#define VER_SUITE_SMALLBUSINESS 0x00000001 -#define VER_SUITE_ENTERPRISE 0x00000002 -#define VER_SUITE_BACKOFFICE 0x00000004 -#define VER_SUITE_COMMUNICATIONS 0x00000008 -#define VER_SUITE_TERMINAL 0x00000010 -#define VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020 -#define VER_SUITE_EMBEDDEDNT 0x00000040 -#define VER_SUITE_DATACENTER 0x00000080 -#define VER_SUITE_SINGLEUSERTS 0x00000100 -#define VER_SUITE_PERSONAL 0x00000200 -#define VER_SUITE_BLADE 0x00000400 -#define VER_SUITE_EMBEDDED_RESTRICTED 0x00000800 -#define VER_SUITE_SECURITY_APPLIANCE 0x00001000 -#define VER_SUITE_STORAGE_SERVER 0x00002000 -#define VER_SUITE_COMPUTE_SERVER 0x00004000 -#define VER_SUITE_WH_SERVER 0x00008000 -#define VER_SUITE_MULTIUSERTS 0x00020000 - - -// -// Product types -// This list grows with each OS release. -// -// There is no ordering of values to ensure callers -// do an equality test i.e. greater-than and less-than -// comparisons are not useful. -// -// NOTE: Values in this list should never be deleted. -// When a product-type 'X' gets dropped from a -// OS release onwards, the value of 'X' continues -// to be used in the mapping table of GetProductInfo. -// - -#define PRODUCT_UNDEFINED 0x00000000 - -#define PRODUCT_ULTIMATE 0x00000001 -#define PRODUCT_HOME_BASIC 0x00000002 -#define PRODUCT_HOME_PREMIUM 0x00000003 -#define PRODUCT_ENTERPRISE 0x00000004 -#define PRODUCT_HOME_BASIC_N 0x00000005 -#define PRODUCT_BUSINESS 0x00000006 -#define PRODUCT_STANDARD_SERVER 0x00000007 -#define PRODUCT_DATACENTER_SERVER 0x00000008 -#define PRODUCT_SMALLBUSINESS_SERVER 0x00000009 -#define PRODUCT_ENTERPRISE_SERVER 0x0000000A -#define PRODUCT_STARTER 0x0000000B -#define PRODUCT_DATACENTER_SERVER_CORE 0x0000000C -#define PRODUCT_STANDARD_SERVER_CORE 0x0000000D -#define PRODUCT_ENTERPRISE_SERVER_CORE 0x0000000E -#define PRODUCT_ENTERPRISE_SERVER_IA64 0x0000000F -#define PRODUCT_BUSINESS_N 0x00000010 -#define PRODUCT_WEB_SERVER 0x00000011 -#define PRODUCT_CLUSTER_SERVER 0x00000012 -#define PRODUCT_HOME_SERVER 0x00000013 -#define PRODUCT_STORAGE_EXPRESS_SERVER 0x00000014 -#define PRODUCT_STORAGE_STANDARD_SERVER 0x00000015 -#define PRODUCT_STORAGE_WORKGROUP_SERVER 0x00000016 -#define PRODUCT_STORAGE_ENTERPRISE_SERVER 0x00000017 -#define PRODUCT_SERVER_FOR_SMALLBUSINESS 0x00000018 -#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM 0x00000019 -#define PRODUCT_HOME_PREMIUM_N 0x0000001A -#define PRODUCT_ENTERPRISE_N 0x0000001B -#define PRODUCT_ULTIMATE_N 0x0000001C -#define PRODUCT_WEB_SERVER_CORE 0x0000001D -#define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT 0x0000001E -#define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY 0x0000001F -#define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING 0x00000020 -#define PRODUCT_SERVER_FOUNDATION 0x00000021 -#define PRODUCT_HOME_PREMIUM_SERVER 0x00000022 -#define PRODUCT_SERVER_FOR_SMALLBUSINESS_V 0x00000023 -#define PRODUCT_STANDARD_SERVER_V 0x00000024 -#define PRODUCT_DATACENTER_SERVER_V 0x00000025 -#define PRODUCT_ENTERPRISE_SERVER_V 0x00000026 -#define PRODUCT_DATACENTER_SERVER_CORE_V 0x00000027 -#define PRODUCT_STANDARD_SERVER_CORE_V 0x00000028 -#define PRODUCT_ENTERPRISE_SERVER_CORE_V 0x00000029 -#define PRODUCT_HYPERV 0x0000002A -#define PRODUCT_STORAGE_EXPRESS_SERVER_CORE 0x0000002B -#define PRODUCT_STORAGE_STANDARD_SERVER_CORE 0x0000002C -#define PRODUCT_STORAGE_WORKGROUP_SERVER_CORE 0x0000002D -#define PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE 0x0000002E -#define PRODUCT_STARTER_N 0x0000002F -#define PRODUCT_PROFESSIONAL 0x00000030 -#define PRODUCT_PROFESSIONAL_N 0x00000031 -#define PRODUCT_SB_SOLUTION_SERVER 0x00000032 -#define PRODUCT_SERVER_FOR_SB_SOLUTIONS 0x00000033 -#define PRODUCT_STANDARD_SERVER_SOLUTIONS 0x00000034 -#define PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE 0x00000035 -#define PRODUCT_SB_SOLUTION_SERVER_EM 0x00000036 -#define PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM 0x00000037 -#define PRODUCT_SOLUTION_EMBEDDEDSERVER 0x00000038 -#define PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE 0x00000039 -#define PRODUCT_PROFESSIONAL_EMBEDDED 0x0000003A -#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT 0x0000003B -#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL 0x0000003C -#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC 0x0000003D -#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC 0x0000003E -#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE 0x0000003F -#define PRODUCT_CLUSTER_SERVER_V 0x00000040 -#define PRODUCT_EMBEDDED 0x00000041 -#define PRODUCT_STARTER_E 0x00000042 -#define PRODUCT_HOME_BASIC_E 0x00000043 -#define PRODUCT_HOME_PREMIUM_E 0x00000044 -#define PRODUCT_PROFESSIONAL_E 0x00000045 -#define PRODUCT_ENTERPRISE_E 0x00000046 -#define PRODUCT_ULTIMATE_E 0x00000047 -#define PRODUCT_ENTERPRISE_EVALUATION 0x00000048 -#define PRODUCT_MULTIPOINT_STANDARD_SERVER 0x0000004C -#define PRODUCT_MULTIPOINT_PREMIUM_SERVER 0x0000004D -#define PRODUCT_STANDARD_EVALUATION_SERVER 0x0000004F -#define PRODUCT_DATACENTER_EVALUATION_SERVER 0x00000050 -#define PRODUCT_ENTERPRISE_N_EVALUATION 0x00000054 -#define PRODUCT_EMBEDDED_AUTOMOTIVE 0x00000055 -#define PRODUCT_EMBEDDED_INDUSTRY_A 0x00000056 -#define PRODUCT_THINPC 0x00000057 -#define PRODUCT_EMBEDDED_A 0x00000058 -#define PRODUCT_EMBEDDED_INDUSTRY 0x00000059 -#define PRODUCT_EMBEDDED_E 0x0000005A -#define PRODUCT_EMBEDDED_INDUSTRY_E 0x0000005B -#define PRODUCT_EMBEDDED_INDUSTRY_A_E 0x0000005C -#define PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER 0x0000005F -#define PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER 0x00000060 -#define PRODUCT_CORE_ARM 0x00000061 -#define PRODUCT_CORE_N 0x00000062 -#define PRODUCT_CORE_COUNTRYSPECIFIC 0x00000063 -#define PRODUCT_CORE_SINGLELANGUAGE 0x00000064 -#define PRODUCT_CORE 0x00000065 -#define PRODUCT_PROFESSIONAL_WMC 0x00000067 -#define PRODUCT_EMBEDDED_INDUSTRY_EVAL 0x00000069 -#define PRODUCT_EMBEDDED_INDUSTRY_E_EVAL 0x0000006A -#define PRODUCT_EMBEDDED_EVAL 0x0000006B -#define PRODUCT_EMBEDDED_E_EVAL 0x0000006C -#define PRODUCT_NANO_SERVER 0x0000006D -#define PRODUCT_CLOUD_STORAGE_SERVER 0x0000006E -#define PRODUCT_CORE_CONNECTED 0x0000006F -#define PRODUCT_PROFESSIONAL_STUDENT 0x00000070 -#define PRODUCT_CORE_CONNECTED_N 0x00000071 -#define PRODUCT_PROFESSIONAL_STUDENT_N 0x00000072 -#define PRODUCT_CORE_CONNECTED_SINGLELANGUAGE 0x00000073 -#define PRODUCT_CORE_CONNECTED_COUNTRYSPECIFIC 0x00000074 -#define PRODUCT_CONNECTED_CAR 0x00000075 -#define PRODUCT_INDUSTRY_HANDHELD 0x00000076 -#define PRODUCT_PPI_PRO 0x00000077 -#define PRODUCT_ARM64_SERVER 0x00000078 -#define PRODUCT_EDUCATION 0x00000079 -#define PRODUCT_EDUCATION_N 0x0000007A -#define PRODUCT_IOTUAP 0x0000007B -#define PRODUCT_CLOUD_HOST_INFRASTRUCTURE_SERVER 0x0000007C -#define PRODUCT_ENTERPRISE_S 0x0000007D -#define PRODUCT_ENTERPRISE_S_N 0x0000007E -#define PRODUCT_PROFESSIONAL_S 0x0000007F -#define PRODUCT_PROFESSIONAL_S_N 0x00000080 -#define PRODUCT_ENTERPRISE_S_EVALUATION 0x00000081 -#define PRODUCT_ENTERPRISE_S_N_EVALUATION 0x00000082 -#define PRODUCT_HOLOGRAPHIC 0x00000087 -#define PRODUCT_HOLOGRAPHIC_BUSINESS 0x00000088 -#define PRODUCT_PRO_SINGLE_LANGUAGE 0x0000008A -#define PRODUCT_PRO_CHINA 0x0000008B -#define PRODUCT_ENTERPRISE_SUBSCRIPTION 0x0000008C -#define PRODUCT_ENTERPRISE_SUBSCRIPTION_N 0x0000008D -#define PRODUCT_DATACENTER_NANO_SERVER 0x0000008F -#define PRODUCT_STANDARD_NANO_SERVER 0x00000090 -#define PRODUCT_DATACENTER_A_SERVER_CORE 0x00000091 -#define PRODUCT_STANDARD_A_SERVER_CORE 0x00000092 -#define PRODUCT_DATACENTER_WS_SERVER_CORE 0x00000093 -#define PRODUCT_STANDARD_WS_SERVER_CORE 0x00000094 -#define PRODUCT_UTILITY_VM 0x00000095 -#define PRODUCT_DATACENTER_EVALUATION_SERVER_CORE 0x0000009F -#define PRODUCT_STANDARD_EVALUATION_SERVER_CORE 0x000000A0 -#define PRODUCT_PRO_WORKSTATION 0x000000A1 -#define PRODUCT_PRO_WORKSTATION_N 0x000000A2 -#define PRODUCT_PRO_FOR_EDUCATION 0x000000A4 -#define PRODUCT_PRO_FOR_EDUCATION_N 0x000000A5 -#define PRODUCT_AZURE_SERVER_CORE 0x000000A8 -#define PRODUCT_AZURE_NANO_SERVER 0x000000A9 -#define PRODUCT_ENTERPRISEG 0x000000AB -#define PRODUCT_ENTERPRISEGN 0x000000AC -#define PRODUCT_SERVERRDSH 0x000000AF -#define PRODUCT_CLOUD 0x000000B2 -#define PRODUCT_CLOUDN 0x000000B3 -#define PRODUCT_HUBOS 0x000000B4 -#define PRODUCT_ONECOREUPDATEOS 0x000000B6 -#define PRODUCT_CLOUDE 0x000000B7 -#define PRODUCT_ANDROMEDA 0x000000B8 -#define PRODUCT_IOTOS 0x000000B9 -#define PRODUCT_CLOUDEN 0x000000BA -#define PRODUCT_IOTEDGEOS 0x000000BB -#define PRODUCT_IOTENTERPRISE 0x000000BC -#define PRODUCT_LITE 0x000000BD -#define PRODUCT_IOTENTERPRISES 0x000000BF - -#define PRODUCT_UNLICENSED 0xABCDABCD - -#include - -// -// ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** -// -// DEPRECATED: The Language ID concept is deprecated, please use -// Locale Names instead, eg: "en" instead of a LANGID like 0x09. -// See the documentation for GetLocaleInfoEx. -// -// Note that the named locale APIs (eg GetLocaleInfoEx) are preferred. -// -// WARNING: Not all locales/languages have unique Language IDs -// -// The following two combinations of primary language ID and -// sublanguage ID have special semantics: -// -// Primary Language ID Sublanguage ID Result -// ------------------- --------------- ------------------------ -// LANG_NEUTRAL SUBLANG_NEUTRAL Language neutral -// LANG_NEUTRAL SUBLANG_DEFAULT User default language -// LANG_NEUTRAL SUBLANG_SYS_DEFAULT System default language -// LANG_INVARIANT SUBLANG_NEUTRAL Invariant locale -// -// This concept is deprecated. It is strongly recommended that -// applications test for locale names instead of Language IDs / LCIDs. -// -// Primary language IDs. -// -// WARNING: This pattern is broken and not followed for all languages. -// Serbian, Bosnian & Croatian are a few examples. -// -// WARNING: There are > 6000 human languages. The PRIMARYLANGID construct -// cannot support all languages your application may encounter. -// Please use Language Names, such as "en". -// -// WARNING: Some languages may have more than one PRIMARYLANGID. Please -// use Locale Names, such as "en-FJ". -// -// WARNING: Some languages do not have assigned LANGIDs. Please use -// Locale Names, such as "tlh-Piqd". -// -// It is recommended that applications test for locale names or actual LCIDs. -// -// Note that the LANG, SUBLANG construction is not always consistent. -// The named locale APIs (eg GetLocaleInfoEx) are recommended. -// -// ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** -// -#define LANG_NEUTRAL 0x00 -#define LANG_INVARIANT 0x7f - -#define LANG_AFRIKAANS 0x36 -#define LANG_ALBANIAN 0x1c -#define LANG_ALSATIAN 0x84 -#define LANG_AMHARIC 0x5e -#define LANG_ARABIC 0x01 -#define LANG_ARMENIAN 0x2b -#define LANG_ASSAMESE 0x4d -#define LANG_AZERI 0x2c // for Azerbaijani, LANG_AZERBAIJANI is preferred -#define LANG_AZERBAIJANI 0x2c -#define LANG_BANGLA 0x45 -#define LANG_BASHKIR 0x6d -#define LANG_BASQUE 0x2d -#define LANG_BELARUSIAN 0x23 -#define LANG_BENGALI 0x45 // Some prefer to use LANG_BANGLA -#define LANG_BRETON 0x7e -#define LANG_BOSNIAN 0x1a // Use with SUBLANG_BOSNIAN_* Sublanguage IDs -#define LANG_BOSNIAN_NEUTRAL 0x781a // Use with the ConvertDefaultLocale function -#define LANG_BULGARIAN 0x02 -#define LANG_CATALAN 0x03 -#define LANG_CENTRAL_KURDISH 0x92 -#define LANG_CHEROKEE 0x5c -#define LANG_CHINESE 0x04 // Use with SUBLANG_CHINESE_* Sublanguage IDs -#define LANG_CHINESE_SIMPLIFIED 0x04 // Use with the ConvertDefaultLocale function -#define LANG_CHINESE_TRADITIONAL 0x7c04 // Use with the ConvertDefaultLocale function -#define LANG_CORSICAN 0x83 -#define LANG_CROATIAN 0x1a -#define LANG_CZECH 0x05 -#define LANG_DANISH 0x06 -#define LANG_DARI 0x8c -#define LANG_DIVEHI 0x65 -#define LANG_DUTCH 0x13 -#define LANG_ENGLISH 0x09 -#define LANG_ESTONIAN 0x25 -#define LANG_FAEROESE 0x38 -#define LANG_FARSI 0x29 // Deprecated: use LANG_PERSIAN instead -#define LANG_FILIPINO 0x64 -#define LANG_FINNISH 0x0b -#define LANG_FRENCH 0x0c -#define LANG_FRISIAN 0x62 -#define LANG_FULAH 0x67 -#define LANG_GALICIAN 0x56 -#define LANG_GEORGIAN 0x37 -#define LANG_GERMAN 0x07 -#define LANG_GREEK 0x08 -#define LANG_GREENLANDIC 0x6f -#define LANG_GUJARATI 0x47 -#define LANG_HAUSA 0x68 -#define LANG_HAWAIIAN 0x75 -#define LANG_HEBREW 0x0d -#define LANG_HINDI 0x39 -#define LANG_HUNGARIAN 0x0e -#define LANG_ICELANDIC 0x0f -#define LANG_IGBO 0x70 -#define LANG_INDONESIAN 0x21 -#define LANG_INUKTITUT 0x5d -#define LANG_IRISH 0x3c // Use with the SUBLANG_IRISH_IRELAND Sublanguage ID -#define LANG_ITALIAN 0x10 -#define LANG_JAPANESE 0x11 -#define LANG_KANNADA 0x4b -#define LANG_KASHMIRI 0x60 -#define LANG_KAZAK 0x3f -#define LANG_KHMER 0x53 -#define LANG_KICHE 0x86 -#define LANG_KINYARWANDA 0x87 -#define LANG_KONKANI 0x57 -#define LANG_KOREAN 0x12 -#define LANG_KYRGYZ 0x40 -#define LANG_LAO 0x54 -#define LANG_LATVIAN 0x26 -#define LANG_LITHUANIAN 0x27 -#define LANG_LOWER_SORBIAN 0x2e -#define LANG_LUXEMBOURGISH 0x6e -#define LANG_MACEDONIAN 0x2f // the Former Yugoslav Republic of Macedonia -#define LANG_MALAY 0x3e -#define LANG_MALAYALAM 0x4c -#define LANG_MALTESE 0x3a -#define LANG_MANIPURI 0x58 -#define LANG_MAORI 0x81 -#define LANG_MAPUDUNGUN 0x7a -#define LANG_MARATHI 0x4e -#define LANG_MOHAWK 0x7c -#define LANG_MONGOLIAN 0x50 -#define LANG_NEPALI 0x61 -#define LANG_NORWEGIAN 0x14 -#define LANG_OCCITAN 0x82 -#define LANG_ODIA 0x48 -#define LANG_ORIYA 0x48 // Deprecated: use LANG_ODIA, instead. -#define LANG_PASHTO 0x63 -#define LANG_PERSIAN 0x29 -#define LANG_POLISH 0x15 -#define LANG_PORTUGUESE 0x16 -#define LANG_PULAR 0x67 // Deprecated: use LANG_FULAH instead -#define LANG_PUNJABI 0x46 -#define LANG_QUECHUA 0x6b -#define LANG_ROMANIAN 0x18 -#define LANG_ROMANSH 0x17 -#define LANG_RUSSIAN 0x19 -#define LANG_SAKHA 0x85 -#define LANG_SAMI 0x3b -#define LANG_SANSKRIT 0x4f -#define LANG_SCOTTISH_GAELIC 0x91 -#define LANG_SERBIAN 0x1a // Use with the SUBLANG_SERBIAN_* Sublanguage IDs -#define LANG_SERBIAN_NEUTRAL 0x7c1a // Use with the ConvertDefaultLocale function -#define LANG_SINDHI 0x59 -#define LANG_SINHALESE 0x5b -#define LANG_SLOVAK 0x1b -#define LANG_SLOVENIAN 0x24 -#define LANG_SOTHO 0x6c -#define LANG_SPANISH 0x0a -#define LANG_SWAHILI 0x41 -#define LANG_SWEDISH 0x1d -#define LANG_SYRIAC 0x5a -#define LANG_TAJIK 0x28 -#define LANG_TAMAZIGHT 0x5f -#define LANG_TAMIL 0x49 -#define LANG_TATAR 0x44 -#define LANG_TELUGU 0x4a -#define LANG_THAI 0x1e -#define LANG_TIBETAN 0x51 -#define LANG_TIGRIGNA 0x73 -#define LANG_TIGRINYA 0x73 // Preferred spelling in locale -#define LANG_TSWANA 0x32 -#define LANG_TURKISH 0x1f -#define LANG_TURKMEN 0x42 -#define LANG_UIGHUR 0x80 -#define LANG_UKRAINIAN 0x22 -#define LANG_UPPER_SORBIAN 0x2e -#define LANG_URDU 0x20 -#define LANG_UZBEK 0x43 -#define LANG_VALENCIAN 0x03 -#define LANG_VIETNAMESE 0x2a -#define LANG_WELSH 0x52 -#define LANG_WOLOF 0x88 -#define LANG_XHOSA 0x34 -#define LANG_YAKUT 0x85 // Deprecated: use LANG_SAKHA,instead -#define LANG_YI 0x78 -#define LANG_YORUBA 0x6a -#define LANG_ZULU 0x35 - -// -// ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** -// -// DEPRECATED: The Sublanguage ID concept is deprecated, please use -// Locale Names instead, eg: "en-US" instead of an LCID like 0x0409. -// See the documentation for GetLocaleInfoEx. -// -// The name immediately following SUBLANG_ dictates which primary -// language ID that sublanguage ID can be combined with to form a -// valid language ID. -// -// Note that the LANG, SUBLANG construction is not always consistent. -// The named locale APIs (eg GetLocaleInfoEx) are recommended. -// -// WARNING: The pattern is broken and not followed for all languages. -// Serbian, Bosnian & Croatian are a few examples. -// -// WARNING: The "SUBLANG" depends on the primary language and is inconsistent. -// SUBLANG_ENGLISH_US is 0x1 and SUBLANG_SPANISH_US is 0x15, so -// it is impossible to determine region merely by inspecting the -// SUBLANG. Please use Locale Names such as "en-US" instead. -// -// WARNING: Numerous SUBLANGS are assigned the same value, so 0x01 could be -// US, French, or many other variations. Please use Locale Names -// such as "en-US" instead. If that is not possible, consider -// testing the entire LCID, eg: 0x0409. -// -// WARNING: There are > 6000 human languages. The PRIMARYLANGID construct -// cannot support all languages your application may encounter. -// Please use Language Names, such as "en". -// -// WARNING: There are > 200 country-regions. The SUBLANGID construct cannot -// represent all valid dialects of languages such as English. -// Please use Locale Names, such as "en-US". -// -// WARNING: Some languages may have more than one PRIMARYLANGID. Please -// use Locale Names, such as "en-FJ". -// -// WARNING: Some languages do not have assigned LANGIDs. Please use -// Locale Names, such as "tlh-Piqd". -// -// ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** -// -#define SUBLANG_NEUTRAL 0x00 // language neutral -#define SUBLANG_DEFAULT 0x01 // user default -#define SUBLANG_SYS_DEFAULT 0x02 // system default -#define SUBLANG_CUSTOM_DEFAULT 0x03 // default custom language/locale -#define SUBLANG_CUSTOM_UNSPECIFIED 0x04 // custom language/locale -#define SUBLANG_UI_CUSTOM_DEFAULT 0x05 // Default custom MUI language/locale - - -#define SUBLANG_AFRIKAANS_SOUTH_AFRICA 0x01 // Afrikaans (South Africa) 0x0436 af-ZA -#define SUBLANG_ALBANIAN_ALBANIA 0x01 // Albanian (Albania) 0x041c sq-AL -#define SUBLANG_ALSATIAN_FRANCE 0x01 // Alsatian (France) 0x0484 -#define SUBLANG_AMHARIC_ETHIOPIA 0x01 // Amharic (Ethiopia) 0x045e -#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 // Arabic (Saudi Arabia) -#define SUBLANG_ARABIC_IRAQ 0x02 // Arabic (Iraq) -#define SUBLANG_ARABIC_EGYPT 0x03 // Arabic (Egypt) -#define SUBLANG_ARABIC_LIBYA 0x04 // Arabic (Libya) -#define SUBLANG_ARABIC_ALGERIA 0x05 // Arabic (Algeria) -#define SUBLANG_ARABIC_MOROCCO 0x06 // Arabic (Morocco) -#define SUBLANG_ARABIC_TUNISIA 0x07 // Arabic (Tunisia) -#define SUBLANG_ARABIC_OMAN 0x08 // Arabic (Oman) -#define SUBLANG_ARABIC_YEMEN 0x09 // Arabic (Yemen) -#define SUBLANG_ARABIC_SYRIA 0x0a // Arabic (Syria) -#define SUBLANG_ARABIC_JORDAN 0x0b // Arabic (Jordan) -#define SUBLANG_ARABIC_LEBANON 0x0c // Arabic (Lebanon) -#define SUBLANG_ARABIC_KUWAIT 0x0d // Arabic (Kuwait) -#define SUBLANG_ARABIC_UAE 0x0e // Arabic (U.A.E) -#define SUBLANG_ARABIC_BAHRAIN 0x0f // Arabic (Bahrain) -#define SUBLANG_ARABIC_QATAR 0x10 // Arabic (Qatar) -#define SUBLANG_ARMENIAN_ARMENIA 0x01 // Armenian (Armenia) 0x042b hy-AM -#define SUBLANG_ASSAMESE_INDIA 0x01 // Assamese (India) 0x044d -#define SUBLANG_AZERI_LATIN 0x01 // Azeri (Latin) - for Azerbaijani, SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN preferred -#define SUBLANG_AZERI_CYRILLIC 0x02 // Azeri (Cyrillic) - for Azerbaijani, SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC preferred -#define SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN 0x01 // Azerbaijani (Azerbaijan, Latin) -#define SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC 0x02 // Azerbaijani (Azerbaijan, Cyrillic) -#define SUBLANG_BANGLA_INDIA 0x01 // Bangla (India) -#define SUBLANG_BANGLA_BANGLADESH 0x02 // Bangla (Bangladesh) -#define SUBLANG_BASHKIR_RUSSIA 0x01 // Bashkir (Russia) 0x046d ba-RU -#define SUBLANG_BASQUE_BASQUE 0x01 // Basque (Basque) 0x042d eu-ES -#define SUBLANG_BELARUSIAN_BELARUS 0x01 // Belarusian (Belarus) 0x0423 be-BY -#define SUBLANG_BENGALI_INDIA 0x01 // Bengali (India) - Note some prefer SUBLANG_BANGLA_INDIA -#define SUBLANG_BENGALI_BANGLADESH 0x02 // Bengali (Bangladesh) - Note some prefer SUBLANG_BANGLA_BANGLADESH -#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05 // Bosnian (Bosnia and Herzegovina - Latin) 0x141a bs-BA-Latn -#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08 // Bosnian (Bosnia and Herzegovina - Cyrillic) 0x201a bs-BA-Cyrl -#define SUBLANG_BRETON_FRANCE 0x01 // Breton (France) 0x047e -#define SUBLANG_BULGARIAN_BULGARIA 0x01 // Bulgarian (Bulgaria) 0x0402 -#define SUBLANG_CATALAN_CATALAN 0x01 // Catalan (Catalan) 0x0403 -#define SUBLANG_CENTRAL_KURDISH_IRAQ 0x01 // Central Kurdish (Iraq) 0x0492 ku-Arab-IQ -#define SUBLANG_CHEROKEE_CHEROKEE 0x01 // Cherokee (Cherokee) 0x045c chr-Cher-US -#define SUBLANG_CHINESE_TRADITIONAL 0x01 // Chinese (Taiwan) 0x0404 zh-TW -#define SUBLANG_CHINESE_SIMPLIFIED 0x02 // Chinese (PR China) 0x0804 zh-CN -#define SUBLANG_CHINESE_HONGKONG 0x03 // Chinese (Hong Kong S.A.R., P.R.C.) 0x0c04 zh-HK -#define SUBLANG_CHINESE_SINGAPORE 0x04 // Chinese (Singapore) 0x1004 zh-SG -#define SUBLANG_CHINESE_MACAU 0x05 // Chinese (Macau S.A.R.) 0x1404 zh-MO -#define SUBLANG_CORSICAN_FRANCE 0x01 // Corsican (France) 0x0483 -#define SUBLANG_CZECH_CZECH_REPUBLIC 0x01 // Czech (Czech Republic) 0x0405 -#define SUBLANG_CROATIAN_CROATIA 0x01 // Croatian (Croatia) -#define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04 // Croatian (Bosnia and Herzegovina - Latin) 0x101a hr-BA -#define SUBLANG_DANISH_DENMARK 0x01 // Danish (Denmark) 0x0406 -#define SUBLANG_DARI_AFGHANISTAN 0x01 // Dari (Afghanistan) -#define SUBLANG_DIVEHI_MALDIVES 0x01 // Divehi (Maldives) 0x0465 div-MV -#define SUBLANG_DUTCH 0x01 // Dutch -#define SUBLANG_DUTCH_BELGIAN 0x02 // Dutch (Belgian) -#define SUBLANG_ENGLISH_US 0x01 // English (USA) -#define SUBLANG_ENGLISH_UK 0x02 // English (UK) -#define SUBLANG_ENGLISH_AUS 0x03 // English (Australian) -#define SUBLANG_ENGLISH_CAN 0x04 // English (Canadian) -#define SUBLANG_ENGLISH_NZ 0x05 // English (New Zealand) -#define SUBLANG_ENGLISH_EIRE 0x06 // English (Irish) -#define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07 // English (South Africa) -#define SUBLANG_ENGLISH_JAMAICA 0x08 // English (Jamaica) -#define SUBLANG_ENGLISH_CARIBBEAN 0x09 // English (Caribbean) -#define SUBLANG_ENGLISH_BELIZE 0x0a // English (Belize) -#define SUBLANG_ENGLISH_TRINIDAD 0x0b // English (Trinidad) -#define SUBLANG_ENGLISH_ZIMBABWE 0x0c // English (Zimbabwe) -#define SUBLANG_ENGLISH_PHILIPPINES 0x0d // English (Philippines) -#define SUBLANG_ENGLISH_INDIA 0x10 // English (India) -#define SUBLANG_ENGLISH_MALAYSIA 0x11 // English (Malaysia) -#define SUBLANG_ENGLISH_SINGAPORE 0x12 // English (Singapore) -#define SUBLANG_ESTONIAN_ESTONIA 0x01 // Estonian (Estonia) 0x0425 et-EE -#define SUBLANG_FAEROESE_FAROE_ISLANDS 0x01 // Faroese (Faroe Islands) 0x0438 fo-FO -#define SUBLANG_FILIPINO_PHILIPPINES 0x01 // Filipino (Philippines) 0x0464 fil-PH -#define SUBLANG_FINNISH_FINLAND 0x01 // Finnish (Finland) 0x040b -#define SUBLANG_FRENCH 0x01 // French -#define SUBLANG_FRENCH_BELGIAN 0x02 // French (Belgian) -#define SUBLANG_FRENCH_CANADIAN 0x03 // French (Canadian) -#define SUBLANG_FRENCH_SWISS 0x04 // French (Swiss) -#define SUBLANG_FRENCH_LUXEMBOURG 0x05 // French (Luxembourg) -#define SUBLANG_FRENCH_MONACO 0x06 // French (Monaco) -#define SUBLANG_FRISIAN_NETHERLANDS 0x01 // Frisian (Netherlands) 0x0462 fy-NL -#define SUBLANG_FULAH_SENEGAL 0x02 // Fulah (Senegal) 0x0867 ff-Latn-SN -#define SUBLANG_GALICIAN_GALICIAN 0x01 // Galician (Galician) 0x0456 gl-ES -#define SUBLANG_GEORGIAN_GEORGIA 0x01 // Georgian (Georgia) 0x0437 ka-GE -#define SUBLANG_GERMAN 0x01 // German -#define SUBLANG_GERMAN_SWISS 0x02 // German (Swiss) -#define SUBLANG_GERMAN_AUSTRIAN 0x03 // German (Austrian) -#define SUBLANG_GERMAN_LUXEMBOURG 0x04 // German (Luxembourg) -#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 // German (Liechtenstein) -#define SUBLANG_GREEK_GREECE 0x01 // Greek (Greece) -#define SUBLANG_GREENLANDIC_GREENLAND 0x01 // Greenlandic (Greenland) 0x046f kl-GL -#define SUBLANG_GUJARATI_INDIA 0x01 // Gujarati (India (Gujarati Script)) 0x0447 gu-IN -#define SUBLANG_HAUSA_NIGERIA_LATIN 0x01 // Hausa (Latin, Nigeria) 0x0468 ha-NG-Latn -#define SUBLANG_HAWAIIAN_US 0x01 // Hawiian (US) 0x0475 haw-US -#define SUBLANG_HEBREW_ISRAEL 0x01 // Hebrew (Israel) 0x040d -#define SUBLANG_HINDI_INDIA 0x01 // Hindi (India) 0x0439 hi-IN -#define SUBLANG_HUNGARIAN_HUNGARY 0x01 // Hungarian (Hungary) 0x040e -#define SUBLANG_ICELANDIC_ICELAND 0x01 // Icelandic (Iceland) 0x040f -#define SUBLANG_IGBO_NIGERIA 0x01 // Igbo (Nigeria) 0x0470 ig-NG -#define SUBLANG_INDONESIAN_INDONESIA 0x01 // Indonesian (Indonesia) 0x0421 id-ID -#define SUBLANG_INUKTITUT_CANADA 0x01 // Inuktitut (Syllabics) (Canada) 0x045d iu-CA-Cans -#define SUBLANG_INUKTITUT_CANADA_LATIN 0x02 // Inuktitut (Canada - Latin) -#define SUBLANG_IRISH_IRELAND 0x02 // Irish (Ireland) -#define SUBLANG_ITALIAN 0x01 // Italian -#define SUBLANG_ITALIAN_SWISS 0x02 // Italian (Swiss) -#define SUBLANG_JAPANESE_JAPAN 0x01 // Japanese (Japan) 0x0411 -#define SUBLANG_KANNADA_INDIA 0x01 // Kannada (India (Kannada Script)) 0x044b kn-IN -#define SUBLANG_KASHMIRI_SASIA 0x02 // Kashmiri (South Asia) -#define SUBLANG_KASHMIRI_INDIA 0x02 // For app compatibility only -#define SUBLANG_KAZAK_KAZAKHSTAN 0x01 // Kazakh (Kazakhstan) 0x043f kk-KZ -#define SUBLANG_KHMER_CAMBODIA 0x01 // Khmer (Cambodia) 0x0453 kh-KH -#define SUBLANG_KICHE_GUATEMALA 0x01 // K'iche (Guatemala) -#define SUBLANG_KINYARWANDA_RWANDA 0x01 // Kinyarwanda (Rwanda) 0x0487 rw-RW -#define SUBLANG_KONKANI_INDIA 0x01 // Konkani (India) 0x0457 kok-IN -#define SUBLANG_KOREAN 0x01 // Korean (Extended Wansung) -#define SUBLANG_KYRGYZ_KYRGYZSTAN 0x01 // Kyrgyz (Kyrgyzstan) 0x0440 ky-KG -#define SUBLANG_LAO_LAO 0x01 // Lao (Lao PDR) 0x0454 lo-LA -#define SUBLANG_LATVIAN_LATVIA 0x01 // Latvian (Latvia) 0x0426 lv-LV -#define SUBLANG_LITHUANIAN 0x01 // Lithuanian -#define SUBLANG_LOWER_SORBIAN_GERMANY 0x02 // Lower Sorbian (Germany) 0x082e wee-DE -#define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01 // Luxembourgish (Luxembourg) 0x046e lb-LU -#define SUBLANG_MACEDONIAN_MACEDONIA 0x01 // Macedonian (Macedonia (FYROM)) 0x042f mk-MK -#define SUBLANG_MALAY_MALAYSIA 0x01 // Malay (Malaysia) -#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 // Malay (Brunei Darussalam) -#define SUBLANG_MALAYALAM_INDIA 0x01 // Malayalam (India (Malayalam Script) ) 0x044c ml-IN -#define SUBLANG_MALTESE_MALTA 0x01 // Maltese (Malta) 0x043a mt-MT -#define SUBLANG_MAORI_NEW_ZEALAND 0x01 // Maori (New Zealand) 0x0481 mi-NZ -#define SUBLANG_MAPUDUNGUN_CHILE 0x01 // Mapudungun (Chile) 0x047a arn-CL -#define SUBLANG_MARATHI_INDIA 0x01 // Marathi (India) 0x044e mr-IN -#define SUBLANG_MOHAWK_MOHAWK 0x01 // Mohawk (Mohawk) 0x047c moh-CA -#define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01 // Mongolian (Cyrillic, Mongolia) -#define SUBLANG_MONGOLIAN_PRC 0x02 // Mongolian (PRC) -#define SUBLANG_NEPALI_INDIA 0x02 // Nepali (India) -#define SUBLANG_NEPALI_NEPAL 0x01 // Nepali (Nepal) 0x0461 ne-NP -#define SUBLANG_NORWEGIAN_BOKMAL 0x01 // Norwegian (Bokmal) -#define SUBLANG_NORWEGIAN_NYNORSK 0x02 // Norwegian (Nynorsk) -#define SUBLANG_OCCITAN_FRANCE 0x01 // Occitan (France) 0x0482 oc-FR -#define SUBLANG_ODIA_INDIA 0x01 // Odia (India (Odia Script)) 0x0448 or-IN -#define SUBLANG_ORIYA_INDIA 0x01 // Deprecated: use SUBLANG_ODIA_INDIA instead -#define SUBLANG_PASHTO_AFGHANISTAN 0x01 // Pashto (Afghanistan) -#define SUBLANG_PERSIAN_IRAN 0x01 // Persian (Iran) 0x0429 fa-IR -#define SUBLANG_POLISH_POLAND 0x01 // Polish (Poland) 0x0415 -#define SUBLANG_PORTUGUESE 0x02 // Portuguese -#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01 // Portuguese (Brazil) -#define SUBLANG_PULAR_SENEGAL 0x02 // Deprecated: Use SUBLANG_FULAH_SENEGAL instead -#define SUBLANG_PUNJABI_INDIA 0x01 // Punjabi (India (Gurmukhi Script)) 0x0446 pa-IN -#define SUBLANG_PUNJABI_PAKISTAN 0x02 // Punjabi (Pakistan (Arabic Script)) 0x0846 pa-Arab-PK -#define SUBLANG_QUECHUA_BOLIVIA 0x01 // Quechua (Bolivia) -#define SUBLANG_QUECHUA_ECUADOR 0x02 // Quechua (Ecuador) -#define SUBLANG_QUECHUA_PERU 0x03 // Quechua (Peru) -#define SUBLANG_ROMANIAN_ROMANIA 0x01 // Romanian (Romania) 0x0418 -#define SUBLANG_ROMANSH_SWITZERLAND 0x01 // Romansh (Switzerland) 0x0417 rm-CH -#define SUBLANG_RUSSIAN_RUSSIA 0x01 // Russian (Russia) 0x0419 -#define SUBLANG_SAKHA_RUSSIA 0x01 // Sakha (Russia) 0x0485 sah-RU -#define SUBLANG_SAMI_NORTHERN_NORWAY 0x01 // Northern Sami (Norway) -#define SUBLANG_SAMI_NORTHERN_SWEDEN 0x02 // Northern Sami (Sweden) -#define SUBLANG_SAMI_NORTHERN_FINLAND 0x03 // Northern Sami (Finland) -#define SUBLANG_SAMI_LULE_NORWAY 0x04 // Lule Sami (Norway) -#define SUBLANG_SAMI_LULE_SWEDEN 0x05 // Lule Sami (Sweden) -#define SUBLANG_SAMI_SOUTHERN_NORWAY 0x06 // Southern Sami (Norway) -#define SUBLANG_SAMI_SOUTHERN_SWEDEN 0x07 // Southern Sami (Sweden) -#define SUBLANG_SAMI_SKOLT_FINLAND 0x08 // Skolt Sami (Finland) -#define SUBLANG_SAMI_INARI_FINLAND 0x09 // Inari Sami (Finland) -#define SUBLANG_SANSKRIT_INDIA 0x01 // Sanskrit (India) 0x044f sa-IN -#define SUBLANG_SCOTTISH_GAELIC 0x01 // Scottish Gaelic (United Kingdom) 0x0491 gd-GB -#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN 0x06 // Serbian (Bosnia and Herzegovina - Latin) -#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x07 // Serbian (Bosnia and Herzegovina - Cyrillic) -#define SUBLANG_SERBIAN_MONTENEGRO_LATIN 0x0b // Serbian (Montenegro - Latn) -#define SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC 0x0c // Serbian (Montenegro - Cyrillic) -#define SUBLANG_SERBIAN_SERBIA_LATIN 0x09 // Serbian (Serbia - Latin) -#define SUBLANG_SERBIAN_SERBIA_CYRILLIC 0x0a // Serbian (Serbia - Cyrillic) -#define SUBLANG_SERBIAN_CROATIA 0x01 // Croatian (Croatia) 0x041a hr-HR -#define SUBLANG_SERBIAN_LATIN 0x02 // Serbian (Latin) -#define SUBLANG_SERBIAN_CYRILLIC 0x03 // Serbian (Cyrillic) -#define SUBLANG_SINDHI_INDIA 0x01 // Sindhi (India) reserved 0x0459 -#define SUBLANG_SINDHI_PAKISTAN 0x02 // Sindhi (Pakistan) 0x0859 sd-Arab-PK -#define SUBLANG_SINDHI_AFGHANISTAN 0x02 // For app compatibility only -#define SUBLANG_SINHALESE_SRI_LANKA 0x01 // Sinhalese (Sri Lanka) -#define SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA 0x01 // Northern Sotho (South Africa) -#define SUBLANG_SLOVAK_SLOVAKIA 0x01 // Slovak (Slovakia) 0x041b sk-SK -#define SUBLANG_SLOVENIAN_SLOVENIA 0x01 // Slovenian (Slovenia) 0x0424 sl-SI -#define SUBLANG_SPANISH 0x01 // Spanish (Castilian) -#define SUBLANG_SPANISH_MEXICAN 0x02 // Spanish (Mexico) -#define SUBLANG_SPANISH_MODERN 0x03 // Spanish (Modern) -#define SUBLANG_SPANISH_GUATEMALA 0x04 // Spanish (Guatemala) -#define SUBLANG_SPANISH_COSTA_RICA 0x05 // Spanish (Costa Rica) -#define SUBLANG_SPANISH_PANAMA 0x06 // Spanish (Panama) -#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07 // Spanish (Dominican Republic) -#define SUBLANG_SPANISH_VENEZUELA 0x08 // Spanish (Venezuela) -#define SUBLANG_SPANISH_COLOMBIA 0x09 // Spanish (Colombia) -#define SUBLANG_SPANISH_PERU 0x0a // Spanish (Peru) -#define SUBLANG_SPANISH_ARGENTINA 0x0b // Spanish (Argentina) -#define SUBLANG_SPANISH_ECUADOR 0x0c // Spanish (Ecuador) -#define SUBLANG_SPANISH_CHILE 0x0d // Spanish (Chile) -#define SUBLANG_SPANISH_URUGUAY 0x0e // Spanish (Uruguay) -#define SUBLANG_SPANISH_PARAGUAY 0x0f // Spanish (Paraguay) -#define SUBLANG_SPANISH_BOLIVIA 0x10 // Spanish (Bolivia) -#define SUBLANG_SPANISH_EL_SALVADOR 0x11 // Spanish (El Salvador) -#define SUBLANG_SPANISH_HONDURAS 0x12 // Spanish (Honduras) -#define SUBLANG_SPANISH_NICARAGUA 0x13 // Spanish (Nicaragua) -#define SUBLANG_SPANISH_PUERTO_RICO 0x14 // Spanish (Puerto Rico) -#define SUBLANG_SPANISH_US 0x15 // Spanish (United States) -#define SUBLANG_SWAHILI_KENYA 0x01 // Swahili (Kenya) 0x0441 sw-KE -#define SUBLANG_SWEDISH 0x01 // Swedish -#define SUBLANG_SWEDISH_FINLAND 0x02 // Swedish (Finland) -#define SUBLANG_SYRIAC_SYRIA 0x01 // Syriac (Syria) 0x045a syr-SY -#define SUBLANG_TAJIK_TAJIKISTAN 0x01 // Tajik (Tajikistan) 0x0428 tg-TJ-Cyrl -#define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02 // Tamazight (Latin, Algeria) 0x085f tzm-Latn-DZ -#define SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH 0x04 // Tamazight (Tifinagh) 0x105f tzm-Tfng-MA -#define SUBLANG_TAMIL_INDIA 0x01 // Tamil (India) -#define SUBLANG_TAMIL_SRI_LANKA 0x02 // Tamil (Sri Lanka) 0x0849 ta-LK -#define SUBLANG_TATAR_RUSSIA 0x01 // Tatar (Russia) 0x0444 tt-RU -#define SUBLANG_TELUGU_INDIA 0x01 // Telugu (India (Telugu Script)) 0x044a te-IN -#define SUBLANG_THAI_THAILAND 0x01 // Thai (Thailand) 0x041e th-TH -#define SUBLANG_TIBETAN_PRC 0x01 // Tibetan (PRC) -#define SUBLANG_TIGRIGNA_ERITREA 0x02 // Tigrigna (Eritrea) -#define SUBLANG_TIGRINYA_ERITREA 0x02 // Tigrinya (Eritrea) 0x0873 ti-ER (preferred spelling) -#define SUBLANG_TIGRINYA_ETHIOPIA 0x01 // Tigrinya (Ethiopia) 0x0473 ti-ET -#define SUBLANG_TSWANA_BOTSWANA 0x02 // Setswana / Tswana (Botswana) 0x0832 tn-BW -#define SUBLANG_TSWANA_SOUTH_AFRICA 0x01 // Setswana / Tswana (South Africa) 0x0432 tn-ZA -#define SUBLANG_TURKISH_TURKEY 0x01 // Turkish (Turkey) 0x041f tr-TR -#define SUBLANG_TURKMEN_TURKMENISTAN 0x01 // Turkmen (Turkmenistan) 0x0442 tk-TM -#define SUBLANG_UIGHUR_PRC 0x01 // Uighur (PRC) 0x0480 ug-CN -#define SUBLANG_UKRAINIAN_UKRAINE 0x01 // Ukrainian (Ukraine) 0x0422 uk-UA -#define SUBLANG_UPPER_SORBIAN_GERMANY 0x01 // Upper Sorbian (Germany) 0x042e wen-DE -#define SUBLANG_URDU_PAKISTAN 0x01 // Urdu (Pakistan) -#define SUBLANG_URDU_INDIA 0x02 // Urdu (India) -#define SUBLANG_UZBEK_LATIN 0x01 // Uzbek (Latin) -#define SUBLANG_UZBEK_CYRILLIC 0x02 // Uzbek (Cyrillic) -#define SUBLANG_VALENCIAN_VALENCIA 0x02 // Valencian (Valencia) 0x0803 ca-ES-Valencia -#define SUBLANG_VIETNAMESE_VIETNAM 0x01 // Vietnamese (Vietnam) 0x042a vi-VN -#define SUBLANG_WELSH_UNITED_KINGDOM 0x01 // Welsh (United Kingdom) 0x0452 cy-GB -#define SUBLANG_WOLOF_SENEGAL 0x01 // Wolof (Senegal) -#define SUBLANG_XHOSA_SOUTH_AFRICA 0x01 // isiXhosa / Xhosa (South Africa) 0x0434 xh-ZA -#define SUBLANG_YAKUT_RUSSIA 0x01 // Deprecated: use SUBLANG_SAKHA_RUSSIA instead -#define SUBLANG_YI_PRC 0x01 // Yi (PRC)) 0x0478 -#define SUBLANG_YORUBA_NIGERIA 0x01 // Yoruba (Nigeria) 046a yo-NG -#define SUBLANG_ZULU_SOUTH_AFRICA 0x01 // isiZulu / Zulu (South Africa) 0x0435 zu-ZA - - - - -// -// Sorting IDs. -// -// Note that the named locale APIs (eg CompareStringExEx) are recommended. -// - -#define SORT_DEFAULT 0x0 // sorting default - -#define SORT_INVARIANT_MATH 0x1 // Invariant (Mathematical Symbols) - -#define SORT_JAPANESE_XJIS 0x0 // Japanese XJIS order -#define SORT_JAPANESE_UNICODE 0x1 // Japanese Unicode order (no longer supported) -#define SORT_JAPANESE_RADICALSTROKE 0x4 // Japanese radical/stroke order - -#define SORT_CHINESE_BIG5 0x0 // Chinese BIG5 order -#define SORT_CHINESE_PRCP 0x0 // PRC Chinese Phonetic order -#define SORT_CHINESE_UNICODE 0x1 // Chinese Unicode order (no longer supported) -#define SORT_CHINESE_PRC 0x2 // PRC Chinese Stroke Count order -#define SORT_CHINESE_BOPOMOFO 0x3 // Traditional Chinese Bopomofo order -#define SORT_CHINESE_RADICALSTROKE 0x4 // Traditional Chinese radical/stroke order. - -#define SORT_KOREAN_KSC 0x0 // Korean KSC order -#define SORT_KOREAN_UNICODE 0x1 // Korean Unicode order (no longer supported) - -#define SORT_GERMAN_PHONE_BOOK 0x1 // German Phone Book order - -#define SORT_HUNGARIAN_DEFAULT 0x0 // Hungarian Default order -#define SORT_HUNGARIAN_TECHNICAL 0x1 // Hungarian Technical order - -#define SORT_GEORGIAN_TRADITIONAL 0x0 // Georgian Traditional order -#define SORT_GEORGIAN_MODERN 0x1 // Georgian Modern order - -// end_r_winnt - -// -// ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** -// -// DEPRECATED: The LCID/LANGID/SORTID concept is deprecated, please use -// Locale Names instead, eg: "en-US" instead of an LCID like 0x0409. -// See the documentation for GetLocaleInfoEx. -// -// A language ID is a 16 bit value which is the combination of a -// primary language ID and a secondary language ID. The bits are -// allocated as follows: -// -// +-----------------------+-------------------------+ -// | Sublanguage ID | Primary Language ID | -// +-----------------------+-------------------------+ -// 15 10 9 0 bit -// -// WARNING: This pattern is broken and not followed for all languages. -// Serbian, Bosnian & Croatian are a few examples. -// -// WARNING: There are > 6000 human languages. The PRIMARYLANGID construct -// cannot support all languages your application may encounter. -// Please use Language Names, such as "en". -// -// WARNING: There are > 200 country-regions. The SUBLANGID construct cannot -// represent all valid dialects of languages such as English. -// Please use Locale Names, such as "en-US". -// -// WARNING: Some languages may have more than one PRIMARYLANGID. Please -// use Locale Names, such as "en-FJ". -// -// WARNING: Some languages do not have assigned LANGIDs. Please use -// Locale Names, such as "tlh-Piqd". -// -// It is recommended that applications test for locale names rather than -// attempting to construct/deconstruct LANGID/PRIMARYLANGID/SUBLANGID -// -// Language ID creation/extraction macros: -// -// MAKELANGID - construct language id from a primary language id and -// a sublanguage id. -// PRIMARYLANGID - extract primary language id from a language id. -// SUBLANGID - extract sublanguage id from a language id. -// -// Note that the LANG, SUBLANG construction is not always consistent. -// The named locale APIs (eg GetLocaleInfoEx) are recommended. -// -// DEPRECATED: Language IDs do not exist for all locales -// -// ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** -// -#define MAKELANGID(p, s) ((((WORD )(s)) << 10) | (WORD )(p)) -#define PRIMARYLANGID(lgid) ((WORD )(lgid) & 0x3ff) -#define SUBLANGID(lgid) ((WORD )(lgid) >> 10) - -// -// ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** -// -// DEPRECATED: The LCID/LANGID/SORTID concept is deprecated, please use -// Locale Names instead, eg: en-US instead of an LCID like 0x0409. -// See the documentation for GetLocaleInfoEx. -// -// A locale ID is a 32 bit value which is the combination of a -// language ID, a sort ID, and a reserved area. The bits are -// allocated as follows: -// -// +-------------+---------+-------------------------+ -// | Reserved | Sort ID | Language ID | -// +-------------+---------+-------------------------+ -// 31 20 19 16 15 0 bit -// -// WARNING: This pattern isn't always followed (es-ES_tradnl vs es-ES for example) -// -// WARNING: Some locales do not have assigned LCIDs. Please use -// Locale Names, such as "tlh-Piqd". -// -// It is recommended that applications test for locale names rather than -// attempting to rely on LCID or LANGID behavior. -// -// DEPRECATED: Locale ID creation/extraction macros: -// -// MAKELCID - construct the locale id from a language id and a sort id. -// MAKESORTLCID - construct the locale id from a language id, sort id, and sort version. -// LANGIDFROMLCID - extract the language id from a locale id. -// SORTIDFROMLCID - extract the sort id from a locale id. -// SORTVERSIONFROMLCID - extract the sort version from a locale id. -// -// Note that the LANG, SUBLANG construction is not always consistent. -// The named locale APIs (eg GetLocaleInfoEx) are recommended. -// -// DEPRECATED: LCIDs do not exist for all locales. -// -// ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** -// -#define NLS_VALID_LOCALE_MASK 0x000fffff - -#define MAKELCID(lgid, srtid) ((DWORD)((((DWORD)((WORD )(srtid))) << 16) | \ - ((DWORD)((WORD )(lgid))))) -#define MAKESORTLCID(lgid, srtid, ver) \ - ((DWORD)((MAKELCID(lgid, srtid)) | \ - (((DWORD)((WORD )(ver))) << 20))) -#define LANGIDFROMLCID(lcid) ((WORD )(lcid)) -#define SORTIDFROMLCID(lcid) ((WORD )((((DWORD)(lcid)) >> 16) & 0xf)) -#define SORTVERSIONFROMLCID(lcid) ((WORD )((((DWORD)(lcid)) >> 20) & 0xf)) - -// Maximum Locale Name Length in Windows -// Locale names are preferred to the deprecated LCID/LANGID concepts. -// -// Locale names should follow the BCP47 recommendations and typically -// include language, script, regional variant, and perhaps additional specifiers. -// BCP47 allows some variation, eg: en-US is preferred to en-Latn-US. -#define LOCALE_NAME_MAX_LENGTH 85 - -// -// ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** -// -// Deprecated default System and User IDs for language and locale. -// -// Locale names such as LOCALE_NAME_SYSTEM_DEFAULT, LOCALE_NAME_USER_DEFAULT, -// and LOCALE_NAME_INVARIANT are preferred. See documentation for GetLocaleInfoEx. -// - -#define LANG_SYSTEM_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT)) -#define LANG_USER_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)) - -#define LOCALE_SYSTEM_DEFAULT (MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT)) -#define LOCALE_USER_DEFAULT (MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT)) - -// -// Other special IDs for language and locale. -// -// DEPRECATED: These identifiers are all underspecified and lose information. -// Please use Locale Names such as "en-FJ". -// See documentation for GetLocaleInfoEx. -// -#define LOCALE_CUSTOM_DEFAULT \ - (MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_CUSTOM_DEFAULT), SORT_DEFAULT)) - -#define LOCALE_CUSTOM_UNSPECIFIED \ - (MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_CUSTOM_UNSPECIFIED), SORT_DEFAULT)) - -#define LOCALE_CUSTOM_UI_DEFAULT \ - (MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_UI_CUSTOM_DEFAULT), SORT_DEFAULT)) - -#define LOCALE_NEUTRAL \ - (MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), SORT_DEFAULT)) - -#define LOCALE_INVARIANT \ - (MAKELCID(MAKELANGID(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT)) - -// -// Transient keyboard Locale IDs (LCIDs) -// Should only be used for keyboard layout identification -// -// DEPRECATED: These identifiers are all transient and will change, even at -// different times on the same system. -// Please use Locale Names such as "en-FJ". -// See documentation for GetLocaleInfoEx. -// -#define LOCALE_TRANSIENT_KEYBOARD1 0x2000 -#define LOCALE_TRANSIENT_KEYBOARD2 0x2400 -#define LOCALE_TRANSIENT_KEYBOARD3 0x2800 -#define LOCALE_TRANSIENT_KEYBOARD4 0x2c00 - -// -// Locale with an unassigned LCID -// These locales cannot be queried by LCID -// Currently same as LOCALE_CUSTOM_UNSPECIFIED -// -// DEPRECATED: Please use Locale Names; see documentation for GetLocaleInfoEx. -// -#define LOCALE_UNASSIGNED_LCID LOCALE_CUSTOM_UNSPECIFIED - -// begin_ntminiport begin_ntndis begin_ntminitape - -// -// Macros used to eliminate compiler warning generated when formal -// parameters or local variables are not declared. -// -// Use DBG_UNREFERENCED_PARAMETER() when a parameter is not yet -// referenced but will be once the module is completely developed. -// -// Use DBG_UNREFERENCED_LOCAL_VARIABLE() when a local variable is not yet -// referenced but will be once the module is completely developed. -// -// Use UNREFERENCED_PARAMETER() if a parameter will never be referenced. -// -// DBG_UNREFERENCED_PARAMETER and DBG_UNREFERENCED_LOCAL_VARIABLE will -// eventually be made into a null macro to help determine whether there -// is unfinished work. -// - -// begin_ntoshvp - -#if ! defined(lint) - -#ifdef _PREFAST_ - -void _Prefast_unreferenced_parameter_impl_(const char*, ...); -#define UNREFERENCED_PARAMETER(P) _Prefast_unreferenced_parameter_impl_("PREfast", ((void) (P), 0)) -#define DBG_UNREFERENCED_PARAMETER(P) _Prefast_unreferenced_parameter_impl_("PREfast", ((void) (P), 0)) -#define DBG_UNREFERENCED_LOCAL_VARIABLE(V) _Prefast_unreferenced_parameter_impl_("PREfast", ((void) (V), 0)) - -#else // _PREFAST_ - -#define UNREFERENCED_PARAMETER(P) (P) -#define DBG_UNREFERENCED_PARAMETER(P) (P) -#define DBG_UNREFERENCED_LOCAL_VARIABLE(V) (V) - -#endif // _PREFAST_ - -#else // lint - -// Note: lint -e530 says don't complain about uninitialized variables for -// this variable. Error 527 has to do with unreachable code. -// -restore restores checking to the -save state - -#define UNREFERENCED_PARAMETER(P) \ - /*lint -save -e527 -e530 */ \ - { \ - (P) = (P); \ - } \ - /*lint -restore */ -#define DBG_UNREFERENCED_PARAMETER(P) \ - /*lint -save -e527 -e530 */ \ - { \ - (P) = (P); \ - } \ - /*lint -restore */ -#define DBG_UNREFERENCED_LOCAL_VARIABLE(V) \ - /*lint -save -e527 -e530 */ \ - { \ - (V) = (V); \ - } \ - /*lint -restore */ - -#endif // lint - -// end_ntoshvp - -// -// Macro used to eliminate compiler warning 4715 within a switch statement -// when all possible cases have already been accounted for. -// -// switch (a & 3) { -// case 0: return 1; -// case 1: return Foo(); -// case 2: return Bar(); -// case 3: return 1; -// DEFAULT_UNREACHABLE; -// - -#if (_MSC_VER > 1200) -#define DEFAULT_UNREACHABLE default: __assume(0) -#else - -// -// Older compilers do not support __assume(), and there is no other free -// method of eliminating the warning. -// - -#define DEFAULT_UNREACHABLE - -#endif - -#ifdef __cplusplus - -// Define operator overloads to enable bit operations on enum values that are -// used to define flags. Use DEFINE_ENUM_FLAG_OPERATORS(YOUR_TYPE) to enable these -// operators on YOUR_TYPE. - -// Moved here from objbase.w. - -// Templates are defined here in order to avoid a dependency on C++ header file, -// or on compiler-specific constructs. -extern "C++" { - - template - struct _ENUM_FLAG_INTEGER_FOR_SIZE; - - template <> - struct _ENUM_FLAG_INTEGER_FOR_SIZE<1> - { - typedef INT8 type; - }; - - template <> - struct _ENUM_FLAG_INTEGER_FOR_SIZE<2> - { - typedef INT16 type; - }; - - template <> - struct _ENUM_FLAG_INTEGER_FOR_SIZE<4> - { - typedef INT32 type; - }; - - template <> - struct _ENUM_FLAG_INTEGER_FOR_SIZE<8> - { - typedef INT64 type; - }; - - // used as an approximation of std::underlying_type - template - struct _ENUM_FLAG_SIZED_INTEGER - { - typedef typename _ENUM_FLAG_INTEGER_FOR_SIZE::type type; - }; - -} - -#if _MSC_VER >= 1900 -#define _ENUM_FLAG_CONSTEXPR constexpr -#else -#define _ENUM_FLAG_CONSTEXPR -#endif - -#define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) \ -extern "C++" { \ -inline _ENUM_FLAG_CONSTEXPR ENUMTYPE operator | (ENUMTYPE a, ENUMTYPE b) throw() { return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -inline ENUMTYPE &operator |= (ENUMTYPE &a, ENUMTYPE b) throw() { return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -inline _ENUM_FLAG_CONSTEXPR ENUMTYPE operator & (ENUMTYPE a, ENUMTYPE b) throw() { return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -inline ENUMTYPE &operator &= (ENUMTYPE &a, ENUMTYPE b) throw() { return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -inline _ENUM_FLAG_CONSTEXPR ENUMTYPE operator ~ (ENUMTYPE a) throw() { return ENUMTYPE(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } \ -inline _ENUM_FLAG_CONSTEXPR ENUMTYPE operator ^ (ENUMTYPE a, ENUMTYPE b) throw() { return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -inline ENUMTYPE &operator ^= (ENUMTYPE &a, ENUMTYPE b) throw() { return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -} -#else -#define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) // NOP, C allows these operators. -#endif - -// Compile-time macros for initializing flag values in const data. -// -// When using DEFINE_ENUM_FLAG_OPERATORS for enum values you should use the macros below -// when you need to initialize global const data. Without these macros the inline operators -// from DEFINE_ENUM_FLAG_OPERATORS force a runtime initialization rather than a -// compile time initialization. This applies even if you have declared the data as const. -// -// This is no longer necessary for compilers that support constexpr. -#define COMPILETIME_OR_2FLAGS(a,b) ((UINT)(a)|(UINT)(b)) -#define COMPILETIME_OR_3FLAGS(a,b,c) ((UINT)(a)|(UINT)(b)|(UINT)(c)) -#define COMPILETIME_OR_4FLAGS(a,b,c,d) ((UINT)(a)|(UINT)(b)|(UINT)(c)|(UINT)(d)) -#define COMPILETIME_OR_5FLAGS(a,b,c,d,e) ((UINT)(a)|(UINT)(b)|(UINT)(c)|(UINT)(d)|(UINT)(e)) -#define COMPILETIME_OR_6FLAGS(a,b,c,d,e,f) ((UINT)(a)|(UINT)(b)|(UINT)(c)|(UINT)(d)|(UINT)(e)|(UINT)(f)) - - -// Much of the Windows SDK assumes the default packing of structs. -#if !defined(WINDOWS_IGNORE_PACKING_MISMATCH) && !defined(__midl) && !defined(MIDL_PASS) && !defined(SORTPP_PASS) && !defined(RC_INVOKED) -#if defined(__cplusplus) && (_MSC_VER >= 1600) -static_assert(__alignof(LARGE_INTEGER) == 8, "Windows headers require the default packing option. Changing this can lead to memory corruption." - " This diagnostic can be disabled by building with WINDOWS_IGNORE_PACKING_MISMATCH defined."); -#elif _MSC_VER >= 1300 -#pragma warning(push) -#pragma warning(disable: 4116) -C_ASSERT(TYPE_ALIGNMENT(LARGE_INTEGER) == 8); -#pragma warning(pop) -#endif -#endif - - -#ifndef UMDF_USING_NTSTATUS -#ifndef WIN32_NO_STATUS -/*lint -save -e767 */ -#define STATUS_WAIT_0 ((DWORD )0x00000000L) -#define STATUS_ABANDONED_WAIT_0 ((DWORD )0x00000080L) -#define STATUS_USER_APC ((DWORD )0x000000C0L) -#define STATUS_TIMEOUT ((DWORD )0x00000102L) -#define STATUS_PENDING ((DWORD )0x00000103L) -#define DBG_EXCEPTION_HANDLED ((DWORD )0x00010001L) -#define DBG_CONTINUE ((DWORD )0x00010002L) -#define STATUS_SEGMENT_NOTIFICATION ((DWORD )0x40000005L) -#define STATUS_FATAL_APP_EXIT ((DWORD )0x40000015L) -#define DBG_REPLY_LATER ((DWORD )0x40010001L) -#define DBG_TERMINATE_THREAD ((DWORD )0x40010003L) -#define DBG_TERMINATE_PROCESS ((DWORD )0x40010004L) -#define DBG_CONTROL_C ((DWORD )0x40010005L) -#define DBG_PRINTEXCEPTION_C ((DWORD )0x40010006L) -#define DBG_RIPEXCEPTION ((DWORD )0x40010007L) -#define DBG_CONTROL_BREAK ((DWORD )0x40010008L) -#define DBG_COMMAND_EXCEPTION ((DWORD )0x40010009L) -#define DBG_PRINTEXCEPTION_WIDE_C ((DWORD )0x4001000AL) -#define STATUS_GUARD_PAGE_VIOLATION ((DWORD )0x80000001L) -#define STATUS_DATATYPE_MISALIGNMENT ((DWORD )0x80000002L) -#define STATUS_BREAKPOINT ((DWORD )0x80000003L) -#define STATUS_SINGLE_STEP ((DWORD )0x80000004L) -#define STATUS_LONGJUMP ((DWORD )0x80000026L) -#define STATUS_UNWIND_CONSOLIDATE ((DWORD )0x80000029L) -#define DBG_EXCEPTION_NOT_HANDLED ((DWORD )0x80010001L) -#define STATUS_ACCESS_VIOLATION ((DWORD )0xC0000005L) -#define STATUS_IN_PAGE_ERROR ((DWORD )0xC0000006L) -#define STATUS_INVALID_HANDLE ((DWORD )0xC0000008L) -#define STATUS_INVALID_PARAMETER ((DWORD )0xC000000DL) -#define STATUS_NO_MEMORY ((DWORD )0xC0000017L) -#define STATUS_ILLEGAL_INSTRUCTION ((DWORD )0xC000001DL) -#define STATUS_NONCONTINUABLE_EXCEPTION ((DWORD )0xC0000025L) -#define STATUS_INVALID_DISPOSITION ((DWORD )0xC0000026L) -#define STATUS_ARRAY_BOUNDS_EXCEEDED ((DWORD )0xC000008CL) -#define STATUS_FLOAT_DENORMAL_OPERAND ((DWORD )0xC000008DL) -#define STATUS_FLOAT_DIVIDE_BY_ZERO ((DWORD )0xC000008EL) -#define STATUS_FLOAT_INEXACT_RESULT ((DWORD )0xC000008FL) -#define STATUS_FLOAT_INVALID_OPERATION ((DWORD )0xC0000090L) -#define STATUS_FLOAT_OVERFLOW ((DWORD )0xC0000091L) -#define STATUS_FLOAT_STACK_CHECK ((DWORD )0xC0000092L) -#define STATUS_FLOAT_UNDERFLOW ((DWORD )0xC0000093L) -#define STATUS_INTEGER_DIVIDE_BY_ZERO ((DWORD )0xC0000094L) -#define STATUS_INTEGER_OVERFLOW ((DWORD )0xC0000095L) -#define STATUS_PRIVILEGED_INSTRUCTION ((DWORD )0xC0000096L) -#define STATUS_STACK_OVERFLOW ((DWORD )0xC00000FDL) -#define STATUS_DLL_NOT_FOUND ((DWORD )0xC0000135L) -#define STATUS_ORDINAL_NOT_FOUND ((DWORD )0xC0000138L) -#define STATUS_ENTRYPOINT_NOT_FOUND ((DWORD )0xC0000139L) -#define STATUS_CONTROL_C_EXIT ((DWORD )0xC000013AL) -#define STATUS_DLL_INIT_FAILED ((DWORD )0xC0000142L) -#define STATUS_FLOAT_MULTIPLE_FAULTS ((DWORD )0xC00002B4L) -#define STATUS_FLOAT_MULTIPLE_TRAPS ((DWORD )0xC00002B5L) -#define STATUS_REG_NAT_CONSUMPTION ((DWORD )0xC00002C9L) -#define STATUS_HEAP_CORRUPTION ((DWORD )0xC0000374L) -#define STATUS_STACK_BUFFER_OVERRUN ((DWORD )0xC0000409L) -#define STATUS_INVALID_CRUNTIME_PARAMETER ((DWORD )0xC0000417L) -#define STATUS_ASSERTION_FAILURE ((DWORD )0xC0000420L) -#define STATUS_ENCLAVE_VIOLATION ((DWORD )0xC00004A2L) -#define STATUS_INTERRUPTED ((DWORD )0xC0000515L) -#define STATUS_THREAD_NOT_RUNNING ((DWORD )0xC0000516L) -#define STATUS_ALREADY_REGISTERED ((DWORD )0xC0000718L) -#if defined(STATUS_SUCCESS) || (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) -#define STATUS_SXS_EARLY_DEACTIVATION ((DWORD )0xC015000FL) -#define STATUS_SXS_INVALID_DEACTIVATION ((DWORD )0xC0150010L) -#endif -/*lint -restore */ -#endif -#endif /* UMDF_USING_NTSTATUS */ - -#define MAXIMUM_WAIT_OBJECTS 64 // Maximum number of wait objects - -#define MAXIMUM_SUSPEND_COUNT MAXCHAR // Maximum times thread can be suspended - -typedef ULONG_PTR KSPIN_LOCK; -typedef KSPIN_LOCK *PKSPIN_LOCK; - -// begin_ntoshvp - -// -// Define 128-bit 16-byte aligned xmm register type. -// - -typedef struct DECLSPEC_ALIGN(16) _M128A { - ULONGLONG Low; - LONGLONG High; -} M128A, *PM128A; - -// -// Format of data for (F)XSAVE/(F)XRSTOR instruction -// - -typedef struct DECLSPEC_ALIGN(16) _XSAVE_FORMAT { - WORD ControlWord; - WORD StatusWord; - BYTE TagWord; - BYTE Reserved1; - WORD ErrorOpcode; - DWORD ErrorOffset; - WORD ErrorSelector; - WORD Reserved2; - DWORD DataOffset; - WORD DataSelector; - WORD Reserved3; - DWORD MxCsr; - DWORD MxCsr_Mask; - M128A FloatRegisters[8]; - -#if defined(_WIN64) - - M128A XmmRegisters[16]; - BYTE Reserved4[96]; - -#else - - M128A XmmRegisters[8]; - BYTE Reserved4[224]; - -#endif - -} XSAVE_FORMAT, *PXSAVE_FORMAT; - -// end_ntoshvp - -// -// Format for CET_U XSTATE component. -// - -typedef struct _XSAVE_CET_U_FORMAT { - DWORD64 Ia32CetUMsr; - DWORD64 Ia32Pl3SspMsr; -} XSAVE_CET_U_FORMAT, *PXSAVE_CET_U_FORMAT; - -typedef struct DECLSPEC_ALIGN(8) _XSAVE_AREA_HEADER { - DWORD64 Mask; - DWORD64 CompactionMask; - DWORD64 Reserved2[6]; -} XSAVE_AREA_HEADER, *PXSAVE_AREA_HEADER; - -typedef struct DECLSPEC_ALIGN(16) _XSAVE_AREA { - XSAVE_FORMAT LegacyState; - XSAVE_AREA_HEADER Header; -} XSAVE_AREA, *PXSAVE_AREA; - -typedef struct _XSTATE_CONTEXT { - DWORD64 Mask; - DWORD Length; - DWORD Reserved1; - _Field_size_bytes_opt_(Length) PXSAVE_AREA Area; - -#if defined(_X86_) - DWORD Reserved2; -#endif - - PVOID Buffer; - -#if defined(_X86_) - DWORD Reserved3; -#endif - -} XSTATE_CONTEXT, *PXSTATE_CONTEXT; - -// -// Scope table structure definition. -// - -typedef struct _SCOPE_TABLE_AMD64 { - DWORD Count; - struct { - DWORD BeginAddress; - DWORD EndAddress; - DWORD HandlerAddress; - DWORD JumpTarget; - } ScopeRecord[1]; -} SCOPE_TABLE_AMD64, *PSCOPE_TABLE_AMD64; - -// begin_ntoshvp - -#ifdef _AMD64_ - - -#if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) - -// -// Define bit test intrinsics. -// - -#ifdef __cplusplus -extern "C" { -#endif - -#define BitTest _bittest -#define BitTestAndComplement _bittestandcomplement -#define BitTestAndSet _bittestandset -#define BitTestAndReset _bittestandreset -#define InterlockedBitTestAndSet _interlockedbittestandset -#define InterlockedBitTestAndSetAcquire _interlockedbittestandset -#define InterlockedBitTestAndSetRelease _interlockedbittestandset -#define InterlockedBitTestAndSetNoFence _interlockedbittestandset -#define InterlockedBitTestAndReset _interlockedbittestandreset -#define InterlockedBitTestAndResetAcquire _interlockedbittestandreset -#define InterlockedBitTestAndResetRelease _interlockedbittestandreset -#define InterlockedBitTestAndResetNoFence _interlockedbittestandreset - -#define BitTest64 _bittest64 -#define BitTestAndComplement64 _bittestandcomplement64 -#define BitTestAndSet64 _bittestandset64 -#define BitTestAndReset64 _bittestandreset64 -#define InterlockedBitTestAndSet64 _interlockedbittestandset64 -#define InterlockedBitTestAndSet64Acquire _interlockedbittestandset64 -#define InterlockedBitTestAndSet64Release _interlockedbittestandset64 -#define InterlockedBitTestAndSet64NoFence _interlockedbittestandset64 -#define InterlockedBitTestAndReset64 _interlockedbittestandreset64 -#define InterlockedBitTestAndReset64Acquire _interlockedbittestandreset64 -#define InterlockedBitTestAndReset64Release _interlockedbittestandreset64 -#define InterlockedBitTestAndReset64NoFence _interlockedbittestandreset64 - -_Must_inspect_result_ -BOOLEAN -_bittest ( - _In_reads_bytes_((Offset/8)+1) LONG const *Base, - _In_range_(>=,0) LONG Offset - ); - -BOOLEAN -_bittestandcomplement ( - _Inout_updates_bytes_((Offset/8)+1) LONG *Base, - _In_range_(>=,0) LONG Offset - ); - -BOOLEAN -_bittestandset ( - _Inout_updates_bytes_((Offset/8)+1) LONG *Base, - _In_range_(>=,0) LONG Offset - ); - -BOOLEAN -_bittestandreset ( - _Inout_updates_bytes_((Offset/8)+1) LONG *Base, - _In_range_(>=,0) LONG Offset - ); - -BOOLEAN -_interlockedbittestandset ( - _Inout_updates_bytes_((Offset/8)+1) _Interlocked_operand_ LONG volatile *Base, - _In_range_(>=,0) LONG Offset - ); - -BOOLEAN -_interlockedbittestandreset ( - _Inout_updates_bytes_((Offset/8)+1) _Interlocked_operand_ LONG volatile *Base, - _In_range_(>=,0) LONG Offset - ); - -BOOLEAN -_bittest64 ( - _In_reads_bytes_((Offset/8)+1) LONG64 const *Base, - _In_range_(>=,0) LONG64 Offset - ); - -BOOLEAN -_bittestandcomplement64 ( - _Inout_updates_bytes_((Offset/8)+1) LONG64 *Base, - _In_range_(>=,0) LONG64 Offset - ); - -BOOLEAN -_bittestandset64 ( - _Inout_updates_bytes_((Offset/8)+1) LONG64 *Base, - _In_range_(>=,0) LONG64 Offset - ); - -BOOLEAN -_bittestandreset64 ( - _Inout_updates_bytes_((Offset/8)+1) LONG64 *Base, - _In_range_(>=,0) LONG64 Offset - ); - -BOOLEAN -_interlockedbittestandset64 ( - _Inout_updates_bytes_((Offset/8)+1) _Interlocked_operand_ LONG64 volatile *Base, - _In_range_(>=,0) LONG64 Offset - ); - -BOOLEAN -_interlockedbittestandreset64 ( - _Inout_updates_bytes_((Offset/8)+1) _Interlocked_operand_ LONG64 volatile *Base, - _In_range_(>=,0) LONG64 Offset - ); - -#pragma intrinsic(_bittest) -#pragma intrinsic(_bittestandcomplement) -#pragma intrinsic(_bittestandset) -#pragma intrinsic(_bittestandreset) -#pragma intrinsic(_interlockedbittestandset) -#pragma intrinsic(_interlockedbittestandreset) - -#pragma intrinsic(_bittest64) -#pragma intrinsic(_bittestandcomplement64) -#pragma intrinsic(_bittestandset64) -#pragma intrinsic(_bittestandreset64) -#pragma intrinsic(_interlockedbittestandset64) -#pragma intrinsic(_interlockedbittestandreset64) - -// -// Define bit scan intrinsics. -// - -#define BitScanForward _BitScanForward -#define BitScanReverse _BitScanReverse -#define BitScanForward64 _BitScanForward64 -#define BitScanReverse64 _BitScanReverse64 - -_Success_(return!=0) -BOOLEAN -_BitScanForward ( - _Out_ DWORD *Index, - _In_ DWORD Mask - ); - -_Success_(return!=0) -BOOLEAN -_BitScanReverse ( - _Out_ DWORD *Index, - _In_ DWORD Mask - ); - -_Success_(return!=0) -BOOLEAN -_BitScanForward64 ( - _Out_ DWORD *Index, - _In_ DWORD64 Mask - ); - -_Success_(return!=0) -BOOLEAN -_BitScanReverse64 ( - _Out_ DWORD *Index, - _In_ DWORD64 Mask - ); - -#pragma intrinsic(_BitScanForward) -#pragma intrinsic(_BitScanReverse) -#pragma intrinsic(_BitScanForward64) -#pragma intrinsic(_BitScanReverse64) - -// -// Interlocked intrinsic functions. -// - -#define InterlockedIncrement16 _InterlockedIncrement16 -#define InterlockedIncrementAcquire16 _InterlockedIncrement16 -#define InterlockedIncrementRelease16 _InterlockedIncrement16 -#define InterlockedIncrementNoFence16 _InterlockedIncrement16 -#define InterlockedDecrement16 _InterlockedDecrement16 -#define InterlockedDecrementAcquire16 _InterlockedDecrement16 -#define InterlockedDecrementRelease16 _InterlockedDecrement16 -#define InterlockedDecrementNoFence16 _InterlockedDecrement16 -#define InterlockedCompareExchange16 _InterlockedCompareExchange16 -#define InterlockedCompareExchangeAcquire16 _InterlockedCompareExchange16 -#define InterlockedCompareExchangeRelease16 _InterlockedCompareExchange16 -#define InterlockedCompareExchangeNoFence16 _InterlockedCompareExchange16 - -#define InterlockedAnd _InterlockedAnd -#define InterlockedAndAcquire _InterlockedAnd -#define InterlockedAndRelease _InterlockedAnd -#define InterlockedAndNoFence _InterlockedAnd -#define InterlockedOr _InterlockedOr -#define InterlockedOrAcquire _InterlockedOr -#define InterlockedOrRelease _InterlockedOr -#define InterlockedOrNoFence _InterlockedOr -#define InterlockedXor _InterlockedXor -#define InterlockedXorAcquire _InterlockedXor -#define InterlockedXorRelease _InterlockedXor -#define InterlockedXorNoFence _InterlockedXor -#define InterlockedIncrement _InterlockedIncrement -#define InterlockedIncrementAcquire _InterlockedIncrement -#define InterlockedIncrementRelease _InterlockedIncrement -#define InterlockedIncrementNoFence _InterlockedIncrement -#define InterlockedDecrement _InterlockedDecrement -#define InterlockedDecrementAcquire _InterlockedDecrement -#define InterlockedDecrementRelease _InterlockedDecrement -#define InterlockedDecrementNoFence _InterlockedDecrement -#define InterlockedAdd _InlineInterlockedAdd -#define InterlockedAddAcquire _InlineInterlockedAdd -#define InterlockedAddRelease _InlineInterlockedAdd -#define InterlockedAddNoFence _InlineInterlockedAdd -#define InterlockedExchange _InterlockedExchange -#define InterlockedExchangeAcquire _InterlockedExchange -#define InterlockedExchangeNoFence _InterlockedExchange -#define InterlockedExchangeAdd _InterlockedExchangeAdd -#define InterlockedExchangeAddAcquire _InterlockedExchangeAdd -#define InterlockedExchangeAddRelease _InterlockedExchangeAdd -#define InterlockedExchangeAddNoFence _InterlockedExchangeAdd -#define InterlockedCompareExchange _InterlockedCompareExchange -#define InterlockedCompareExchangeAcquire _InterlockedCompareExchange -#define InterlockedCompareExchangeRelease _InterlockedCompareExchange -#define InterlockedCompareExchangeNoFence _InterlockedCompareExchange - -#define InterlockedAnd64 _InterlockedAnd64 -#define InterlockedAnd64Acquire _InterlockedAnd64 -#define InterlockedAnd64Release _InterlockedAnd64 -#define InterlockedAnd64NoFence _InterlockedAnd64 -#define InterlockedAndAffinity InterlockedAnd64 -#define InterlockedOr64 _InterlockedOr64 -#define InterlockedOr64Acquire _InterlockedOr64 -#define InterlockedOr64Release _InterlockedOr64 -#define InterlockedOr64NoFence _InterlockedOr64 -#define InterlockedOrAffinity InterlockedOr64 -#define InterlockedXor64 _InterlockedXor64 -#define InterlockedXor64Acquire _InterlockedXor64 -#define InterlockedXor64Release _InterlockedXor64 -#define InterlockedXor64NoFence _InterlockedXor64 -#define InterlockedIncrement64 _InterlockedIncrement64 -#define InterlockedIncrementAcquire64 _InterlockedIncrement64 -#define InterlockedIncrementRelease64 _InterlockedIncrement64 -#define InterlockedIncrementNoFence64 _InterlockedIncrement64 -#define InterlockedDecrement64 _InterlockedDecrement64 -#define InterlockedDecrementAcquire64 _InterlockedDecrement64 -#define InterlockedDecrementRelease64 _InterlockedDecrement64 -#define InterlockedDecrementNoFence64 _InterlockedDecrement64 -#define InterlockedAdd64 _InlineInterlockedAdd64 -#define InterlockedAddAcquire64 _InlineInterlockedAdd64 -#define InterlockedAddRelease64 _InlineInterlockedAdd64 -#define InterlockedAddNoFence64 _InlineInterlockedAdd64 -#define InterlockedExchange64 _InterlockedExchange64 -#define InterlockedExchangeAcquire64 InterlockedExchange64 -#define InterlockedExchangeNoFence64 InterlockedExchange64 -#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 -#define InterlockedExchangeAddAcquire64 _InterlockedExchangeAdd64 -#define InterlockedExchangeAddRelease64 _InterlockedExchangeAdd64 -#define InterlockedExchangeAddNoFence64 _InterlockedExchangeAdd64 -#define InterlockedCompareExchange64 _InterlockedCompareExchange64 -#define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64 -#define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64 -#define InterlockedCompareExchangeNoFence64 InterlockedCompareExchange64 -#define InterlockedCompareExchange128 _InterlockedCompareExchange128 - -#define InterlockedExchangePointer _InterlockedExchangePointer -#define InterlockedExchangePointerNoFence _InterlockedExchangePointer -#define InterlockedExchangePointerAcquire _InterlockedExchangePointer -#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer -#define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer -#define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer -#define InterlockedCompareExchangePointerNoFence _InterlockedCompareExchangePointer - -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONG64 *)a, b) -#define InterlockedExchangeAddSizeTAcquire(a, b) InterlockedExchangeAdd64((LONG64 *)a, b) -#define InterlockedExchangeAddSizeTNoFence(a, b) InterlockedExchangeAdd64((LONG64 *)a, b) -#define InterlockedIncrementSizeT(a) InterlockedIncrement64((LONG64 *)a) -#define InterlockedIncrementSizeTNoFence(a) InterlockedIncrement64((LONG64 *)a) -#define InterlockedDecrementSizeT(a) InterlockedDecrement64((LONG64 *)a) -#define InterlockedDecrementSizeTNoFence(a) InterlockedDecrement64((LONG64 *)a) - -SHORT -InterlockedIncrement16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Addend - ); - -SHORT -InterlockedDecrement16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Addend - ); - -SHORT -InterlockedCompareExchange16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT ExChange, - _In_ SHORT Comperand - ); - -LONG -InterlockedAnd ( - _Inout_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ); - -LONG -InterlockedOr ( - _Inout_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ); - -LONG -InterlockedXor ( - _Inout_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ); - -LONG64 -InterlockedAnd64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ); - -LONG64 -InterlockedOr64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ); - -LONG64 -InterlockedXor64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ); - -LONG -InterlockedIncrement ( - _Inout_ _Interlocked_operand_ LONG volatile *Addend - ); - -LONG -InterlockedDecrement ( - _Inout_ _Interlocked_operand_ LONG volatile *Addend - ); - -LONG -InterlockedExchange ( - _Inout_ _Interlocked_operand_ LONG volatile *Target, - _In_ LONG Value - ); - -LONG -InterlockedExchangeAdd ( - _Inout_ _Interlocked_operand_ LONG volatile *Addend, - _In_ LONG Value - ); - -#if !defined(_X86AMD64_) - -__forceinline -LONG -InterlockedAdd ( - _Inout_ _Interlocked_operand_ LONG volatile *Addend, - _In_ LONG Value - ) - -{ - return InterlockedExchangeAdd(Addend, Value) + Value; -} - -#endif - -LONG -InterlockedCompareExchange ( - _Inout_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG ExChange, - _In_ LONG Comperand - ); - -LONG64 -InterlockedIncrement64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Addend - ); - -LONG64 -InterlockedDecrement64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Addend - ); - -LONG64 -InterlockedExchange64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Target, - _In_ LONG64 Value - ); - -LONG64 -InterlockedExchangeAdd64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Addend, - _In_ LONG64 Value - ); - -#if !defined(_X86AMD64_) - -__forceinline -LONG64 -_InlineInterlockedAdd64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Addend, - _In_ LONG64 Value - ) - -{ - return InterlockedExchangeAdd64(Addend, Value) + Value; -} - -#endif - -LONG64 -InterlockedCompareExchange64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 ExChange, - _In_ LONG64 Comperand - ); - -BOOLEAN -InterlockedCompareExchange128 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 ExchangeHigh, - _In_ LONG64 ExchangeLow, - _Inout_ LONG64 *ComparandResult - ); - -_Ret_writes_(_Inexpressible_(Unknown)) PVOID -InterlockedCompareExchangePointer ( - _Inout_ _At_(*Destination, - _Pre_writable_byte_size_(_Inexpressible_(Unknown)) - _Post_writable_byte_size_(_Inexpressible_(Unknown))) - _Interlocked_operand_ PVOID volatile *Destination, - _In_opt_ PVOID Exchange, - _In_opt_ PVOID Comperand - ); - -_Ret_writes_(_Inexpressible_(Unknown)) PVOID -InterlockedExchangePointer( - _Inout_ _At_(*Target, - _Pre_writable_byte_size_(_Inexpressible_(Unknown)) - _Post_writable_byte_size_(_Inexpressible_(Unknown))) - _Interlocked_operand_ PVOID volatile *Target, - _In_opt_ PVOID Value - ); - -#pragma intrinsic(_InterlockedIncrement16) -#pragma intrinsic(_InterlockedDecrement16) -#pragma intrinsic(_InterlockedCompareExchange16) -#pragma intrinsic(_InterlockedAnd) -#pragma intrinsic(_InterlockedOr) -#pragma intrinsic(_InterlockedXor) -#pragma intrinsic(_InterlockedIncrement) -#pragma intrinsic(_InterlockedDecrement) -#pragma intrinsic(_InterlockedExchange) -#pragma intrinsic(_InterlockedExchangeAdd) -#pragma intrinsic(_InterlockedCompareExchange) -#pragma intrinsic(_InterlockedAnd64) -#pragma intrinsic(_InterlockedOr64) -#pragma intrinsic(_InterlockedXor64) -#pragma intrinsic(_InterlockedIncrement64) -#pragma intrinsic(_InterlockedDecrement64) -#pragma intrinsic(_InterlockedExchange64) -#pragma intrinsic(_InterlockedExchangeAdd64) -#pragma intrinsic(_InterlockedCompareExchange64) - -#if _MSC_VER >= 1500 - -#pragma intrinsic(_InterlockedCompareExchange128) - -#endif - -#pragma intrinsic(_InterlockedExchangePointer) -#pragma intrinsic(_InterlockedCompareExchangePointer) - -#if (_MSC_VER >= 1600) - -#define InterlockedExchange8 _InterlockedExchange8 -#define InterlockedExchange16 _InterlockedExchange16 - -CHAR -InterlockedExchange8 ( - _Inout_ _Interlocked_operand_ CHAR volatile *Target, - _In_ CHAR Value - ); - -SHORT -InterlockedExchange16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT ExChange - ); - -#pragma intrinsic(_InterlockedExchange8) -#pragma intrinsic(_InterlockedExchange16) - -#endif /* _MSC_VER >= 1600 */ - -#if _MSC_FULL_VER >= 140041204 - -#define InterlockedExchangeAdd8 _InterlockedExchangeAdd8 -#define InterlockedAnd8 _InterlockedAnd8 -#define InterlockedOr8 _InterlockedOr8 -#define InterlockedXor8 _InterlockedXor8 -#define InterlockedAnd16 _InterlockedAnd16 -#define InterlockedOr16 _InterlockedOr16 -#define InterlockedXor16 _InterlockedXor16 - -char -InterlockedExchangeAdd8 ( - _Inout_ _Interlocked_operand_ char volatile * _Addend, - _In_ char _Value - ); - -char -InterlockedAnd8 ( - _Inout_ _Interlocked_operand_ char volatile *Destination, - _In_ char Value - ); - -char -InterlockedOr8 ( - _Inout_ _Interlocked_operand_ char volatile *Destination, - _In_ char Value - ); - -char -InterlockedXor8 ( - _Inout_ _Interlocked_operand_ char volatile *Destination, - _In_ char Value - ); - -SHORT -InterlockedAnd16( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ); - -SHORT -InterlockedOr16( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ); - -SHORT -InterlockedXor16( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ); - -#pragma intrinsic (_InterlockedExchangeAdd8) -#pragma intrinsic (_InterlockedAnd8) -#pragma intrinsic (_InterlockedOr8) -#pragma intrinsic (_InterlockedXor8) -#pragma intrinsic (_InterlockedAnd16) -#pragma intrinsic (_InterlockedOr16) -#pragma intrinsic (_InterlockedXor16) - -#endif - -// end_ntoshvp - -// -// Define extended CPUID intrinsic. -// - -#define CpuIdEx __cpuidex - -VOID -__cpuidex ( - int CPUInfo[4], - int Function, - int SubLeaf - ); - -#pragma intrinsic(__cpuidex) - -// begin_ntoshvp - -// -// Define function to flush a cache line. -// - -#define CacheLineFlush(Address) _mm_clflush(Address) - -VOID -_mm_clflush ( - _In_ VOID const *Address - ); - -#pragma intrinsic(_mm_clflush) - -// begin_sdfwdm -// begin_wudfpwdm - -VOID -_ReadWriteBarrier ( - VOID - ); - -#pragma intrinsic(_ReadWriteBarrier) - -// -// Define memory fence intrinsics -// - -#define FastFence __faststorefence - -// end_wudfpwdm -// end_sdfwdm - -#define LoadFence _mm_lfence -#define MemoryFence _mm_mfence -#define StoreFence _mm_sfence -#define SpeculationFence LoadFence - -// begin_sdfwdm -// begin_wudfpwdm - -VOID -__faststorefence ( - VOID - ); - -// end_wudfpwdm -// end_sdfwdm - -VOID -_mm_lfence ( - VOID - ); - -VOID -_mm_mfence ( - VOID - ); - -VOID -_mm_sfence ( - VOID - ); - -VOID -_mm_pause ( - VOID - ); - -VOID -_mm_prefetch ( - _In_ CHAR CONST *a, - _In_ int sel - ); - -VOID -_m_prefetchw ( - _In_ volatile CONST VOID *Source - ); - -// -// Define constants for use with _mm_prefetch. -// - -#define _MM_HINT_T0 1 -#define _MM_HINT_T1 2 -#define _MM_HINT_T2 3 -#define _MM_HINT_NTA 0 - -// begin_sdfwdm -// begin_wudfpwdm - -#pragma intrinsic(__faststorefence) - -// end_wudfpwdm -// end_sdfwdm - -#pragma intrinsic(_mm_pause) -#pragma intrinsic(_mm_prefetch) -#pragma intrinsic(_mm_lfence) -#pragma intrinsic(_mm_mfence) -#pragma intrinsic(_mm_sfence) -#pragma intrinsic(_m_prefetchw) - -#define YieldProcessor _mm_pause -#define MemoryBarrier __faststorefence -#define PreFetchCacheLine(l, a) _mm_prefetch((CHAR CONST *) a, l) -#define PrefetchForWrite(p) _m_prefetchw(p) -#define ReadForWriteAccess(p) (_m_prefetchw(p), *(p)) - -// -// PreFetchCacheLine level defines. -// - -#define PF_TEMPORAL_LEVEL_1 _MM_HINT_T0 -#define PF_TEMPORAL_LEVEL_2 _MM_HINT_T1 -#define PF_TEMPORAL_LEVEL_3 _MM_HINT_T2 -#define PF_NON_TEMPORAL_LEVEL_ALL _MM_HINT_NTA - -// -// Define get/set MXCSR intrinsics. -// - -#define ReadMxCsr _mm_getcsr -#define WriteMxCsr _mm_setcsr - -unsigned int -_mm_getcsr ( - VOID - ); - -VOID -_mm_setcsr ( - _In_ unsigned int MxCsr - ); - -#pragma intrinsic(_mm_getcsr) -#pragma intrinsic(_mm_setcsr) - -// -// Define function to get the caller's EFLAGs value. -// - -#define GetCallersEflags() __getcallerseflags() - -unsigned __int32 -__getcallerseflags ( - VOID - ); - -#pragma intrinsic(__getcallerseflags) - -// -// Define function to get segment limit. -// - -#define GetSegmentLimit __segmentlimit - -DWORD -__segmentlimit ( - _In_ DWORD Selector - ); - -#pragma intrinsic(__segmentlimit) - -// -// Define function to read the value of a performance counter. -// - -#define ReadPMC __readpmc - -DWORD64 -__readpmc ( - _In_ DWORD Counter - ); - -#pragma intrinsic(__readpmc) - -// -// Define function to read the value of the time stamp counter -// - -#define ReadTimeStampCounter() __rdtsc() - -DWORD64 -__rdtsc ( - VOID - ); - -#pragma intrinsic(__rdtsc) - -// -// Define functions to move strings as bytes, words, dwords, and qwords. -// - -VOID -__movsb ( - _Out_writes_all_(Count) PBYTE Destination, - _In_reads_(Count) BYTE const *Source, - _In_ SIZE_T Count - ); - -VOID -__movsw ( - _Out_writes_all_(Count) PWORD Destination, - _In_reads_(Count) WORD const *Source, - _In_ SIZE_T Count - ); - -VOID -__movsd ( - _Out_writes_all_(Count) PDWORD Destination, - _In_reads_(Count) DWORD const *Source, - _In_ SIZE_T Count - ); - -VOID -__movsq ( - _Out_writes_all_(Count) PDWORD64 Destination, - _In_reads_(Count) DWORD64 const *Source, - _In_ SIZE_T Count - ); - -#pragma intrinsic(__movsb) -#pragma intrinsic(__movsw) -#pragma intrinsic(__movsd) -#pragma intrinsic(__movsq) - -// -// Define functions to store strings as bytes, words, dwords, and qwords. -// - -VOID -__stosb ( - _Out_writes_all_(Count) PBYTE Destination, - _In_ BYTE Value, - _In_ SIZE_T Count - ); - -VOID -__stosw ( - _Out_writes_all_(Count) PWORD Destination, - _In_ WORD Value, - _In_ SIZE_T Count - ); - -VOID -__stosd ( - _Out_writes_all_(Count) PDWORD Destination, - _In_ DWORD Value, - _In_ SIZE_T Count - ); - -VOID -__stosq ( - _Out_writes_all_(Count) PDWORD64 Destination, - _In_ DWORD64 Value, - _In_ SIZE_T Count - ); - -#pragma intrinsic(__stosb) -#pragma intrinsic(__stosw) -#pragma intrinsic(__stosd) -#pragma intrinsic(__stosq) - -// -// Define functions to capture the high 64-bits of a 128-bit multiply. -// - -#define MultiplyHigh __mulh -#define UnsignedMultiplyHigh __umulh - -LONGLONG -MultiplyHigh ( - _In_ LONG64 Multiplier, - _In_ LONG64 Multiplicand - ); - -ULONGLONG -UnsignedMultiplyHigh ( - _In_ DWORD64 Multiplier, - _In_ DWORD64 Multiplicand - ); - -#pragma intrinsic(__mulh) -#pragma intrinsic(__umulh) - -// -// Define population count intrinsic. -// - -#define PopulationCount64 __popcnt64 - -DWORD64 -PopulationCount64 ( - _In_ DWORD64 operand - ); - -#if _MSC_VER >= 1500 - -#pragma intrinsic(__popcnt64) - -#endif - -// -// Define functions to perform 128-bit shifts -// - -#define ShiftLeft128 __shiftleft128 -#define ShiftRight128 __shiftright128 - -DWORD64 -ShiftLeft128 ( - _In_ DWORD64 LowPart, - _In_ DWORD64 HighPart, - _In_ BYTE Shift - ); - -DWORD64 -ShiftRight128 ( - _In_ DWORD64 LowPart, - _In_ DWORD64 HighPart, - _In_ BYTE Shift - ); - -#pragma intrinsic(__shiftleft128) -#pragma intrinsic(__shiftright128) - -// -// Define functions to perform 128-bit multiplies. -// - -#define Multiply128 _mul128 - -LONG64 -Multiply128 ( - _In_ LONG64 Multiplier, - _In_ LONG64 Multiplicand, - _Out_ LONG64 *HighProduct - ); - -#pragma intrinsic(_mul128) - -#ifndef UnsignedMultiply128 - -#define UnsignedMultiply128 _umul128 - -DWORD64 -UnsignedMultiply128 ( - _In_ DWORD64 Multiplier, - _In_ DWORD64 Multiplicand, - _Out_ DWORD64 *HighProduct - ); - -#pragma intrinsic(_umul128) - -#endif - -__forceinline -LONG64 -MultiplyExtract128 ( - _In_ LONG64 Multiplier, - _In_ LONG64 Multiplicand, - _In_ BYTE Shift - ) - -{ - - LONG64 extractedProduct; - LONG64 highProduct; - LONG64 lowProduct; - BOOLEAN negate; - DWORD64 uhighProduct; - DWORD64 ulowProduct; - - lowProduct = Multiply128(Multiplier, Multiplicand, &highProduct); - negate = FALSE; - uhighProduct = (DWORD64)highProduct; - ulowProduct = (DWORD64)lowProduct; - if (highProduct < 0) { - negate = TRUE; - uhighProduct = (DWORD64)(-highProduct); - ulowProduct = (DWORD64)(-lowProduct); - if (ulowProduct != 0) { - uhighProduct -= 1; - } - } - - extractedProduct = (LONG64)ShiftRight128(ulowProduct, uhighProduct, Shift); - if (negate != FALSE) { - extractedProduct = -extractedProduct; - } - - return extractedProduct; -} - -__forceinline -DWORD64 -UnsignedMultiplyExtract128 ( - _In_ DWORD64 Multiplier, - _In_ DWORD64 Multiplicand, - _In_ BYTE Shift - ) - -{ - - DWORD64 extractedProduct; - DWORD64 highProduct; - DWORD64 lowProduct; - - lowProduct = UnsignedMultiply128(Multiplier, Multiplicand, &highProduct); - extractedProduct = ShiftRight128(lowProduct, highProduct, Shift); - return extractedProduct; -} - -// -// Define functions to read and write the uer TEB and the system PCR/PRCB. -// - -BYTE -__readgsbyte ( - _In_ DWORD Offset - ); - -WORD -__readgsword ( - _In_ DWORD Offset - ); - -DWORD -__readgsdword ( - _In_ DWORD Offset - ); - -DWORD64 -__readgsqword ( - _In_ DWORD Offset - ); - -VOID -__writegsbyte ( - _In_ DWORD Offset, - _In_ BYTE Data - ); - -VOID -__writegsword ( - _In_ DWORD Offset, - _In_ WORD Data - ); - -VOID -__writegsdword ( - _In_ DWORD Offset, - _In_ DWORD Data - ); - -VOID -__writegsqword ( - _In_ DWORD Offset, - _In_ DWORD64 Data - ); - -#pragma intrinsic(__readgsbyte) -#pragma intrinsic(__readgsword) -#pragma intrinsic(__readgsdword) -#pragma intrinsic(__readgsqword) -#pragma intrinsic(__writegsbyte) -#pragma intrinsic(__writegsword) -#pragma intrinsic(__writegsdword) -#pragma intrinsic(__writegsqword) - -#if !defined(_MANAGED) - -VOID -__incgsbyte ( - _In_ DWORD Offset - ); - -VOID -__addgsbyte ( - _In_ DWORD Offset, - _In_ BYTE Value - ); - -VOID -__incgsword ( - _In_ DWORD Offset - ); - -VOID -__addgsword ( - _In_ DWORD Offset, - _In_ WORD Value - ); - -VOID -__incgsdword ( - _In_ DWORD Offset - ); - -VOID -__addgsdword ( - _In_ DWORD Offset, - _In_ DWORD Value - ); - -VOID -__incgsqword ( - _In_ DWORD Offset - ); - -VOID -__addgsqword ( - _In_ DWORD Offset, - _In_ DWORD64 Value - ); - -#if 0 -#pragma intrinsic(__incgsbyte) -#pragma intrinsic(__addgsbyte) -#pragma intrinsic(__incgsword) -#pragma intrinsic(__addgsword) -#pragma intrinsic(__incgsdword) -#pragma intrinsic(__addgsdword) -#pragma intrinsic(__incgsqword) -#pragma intrinsic(__addgsqword) -#endif - -#endif // !defined(_MANAGED) - - -#ifdef __cplusplus -} -#endif - -#endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) - -// end_ntoshvp -// -// The following values specify the type of access in the first parameter -// of the exception record whan the exception code specifies an access -// violation. -// - -#define EXCEPTION_READ_FAULT 0 // exception caused by a read -#define EXCEPTION_WRITE_FAULT 1 // exception caused by a write -#define EXCEPTION_EXECUTE_FAULT 8 // exception caused by an instruction fetch - -// begin_wx86 -// -// The following flags control the contents of the CONTEXT structure. -// - -#if !defined(RC_INVOKED) - -#define CONTEXT_AMD64 0x00100000L - -// end_wx86 - -#define CONTEXT_CONTROL (CONTEXT_AMD64 | 0x00000001L) -#define CONTEXT_INTEGER (CONTEXT_AMD64 | 0x00000002L) -#define CONTEXT_SEGMENTS (CONTEXT_AMD64 | 0x00000004L) -#define CONTEXT_FLOATING_POINT (CONTEXT_AMD64 | 0x00000008L) -#define CONTEXT_DEBUG_REGISTERS (CONTEXT_AMD64 | 0x00000010L) - -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | \ - CONTEXT_FLOATING_POINT) - -#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | \ - CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | \ - CONTEXT_DEBUG_REGISTERS) - -#define CONTEXT_XSTATE (CONTEXT_AMD64 | 0x00000040L) - -#if defined(XBOX_SYSTEMOS) - -#define CONTEXT_KERNEL_DEBUGGER 0x04000000L - -#endif - -#define CONTEXT_EXCEPTION_ACTIVE 0x08000000L -#define CONTEXT_SERVICE_ACTIVE 0x10000000L -#define CONTEXT_EXCEPTION_REQUEST 0x40000000L -#define CONTEXT_EXCEPTION_REPORTING 0x80000000L - -// begin_wx86 - -#endif // !defined(RC_INVOKED) - -// -// Define initial MxCsr and FpCsr control. -// - -#define INITIAL_MXCSR 0x1f80 // initial MXCSR value -#define INITIAL_FPCSR 0x027f // initial FPCSR value - -// end_ntddk -// begin_wdm begin_ntosp -// begin_ntoshvp - -typedef XSAVE_FORMAT XMM_SAVE_AREA32, *PXMM_SAVE_AREA32; - -// end_wdm end_ntosp -// begin_ntddk - -// -// Context Frame -// -// This frame has a several purposes: 1) it is used as an argument to -// NtContinue, 2) it is used to constuct a call frame for APC delivery, -// and 3) it is used in the user level thread creation routines. -// -// -// The flags field within this record controls the contents of a CONTEXT -// record. -// -// If the context record is used as an input parameter, then for each -// portion of the context record controlled by a flag whose value is -// set, it is assumed that that portion of the context record contains -// valid context. If the context record is being used to modify a threads -// context, then only that portion of the threads context is modified. -// -// If the context record is used as an output parameter to capture the -// context of a thread, then only those portions of the thread's context -// corresponding to set flags will be returned. -// -// CONTEXT_CONTROL specifies SegSs, Rsp, SegCs, Rip, and EFlags. -// -// CONTEXT_INTEGER specifies Rax, Rcx, Rdx, Rbx, Rbp, Rsi, Rdi, and R8-R15. -// -// CONTEXT_SEGMENTS specifies SegDs, SegEs, SegFs, and SegGs. -// -// CONTEXT_FLOATING_POINT specifies Xmm0-Xmm15. -// -// CONTEXT_DEBUG_REGISTERS specifies Dr0-Dr3 and Dr6-Dr7. -// - -typedef struct DECLSPEC_ALIGN(16) DECLSPEC_NOINITALL _CONTEXT { - - // - // Register parameter home addresses. - // - // N.B. These fields are for convience - they could be used to extend the - // context record in the future. - // - - DWORD64 P1Home; - DWORD64 P2Home; - DWORD64 P3Home; - DWORD64 P4Home; - DWORD64 P5Home; - DWORD64 P6Home; - - // - // Control flags. - // - - DWORD ContextFlags; - DWORD MxCsr; - - // - // Segment Registers and processor flags. - // - - WORD SegCs; - WORD SegDs; - WORD SegEs; - WORD SegFs; - WORD SegGs; - WORD SegSs; - DWORD EFlags; - - // - // Debug registers - // - - DWORD64 Dr0; - DWORD64 Dr1; - DWORD64 Dr2; - DWORD64 Dr3; - DWORD64 Dr6; - DWORD64 Dr7; - - // - // Integer registers. - // - - DWORD64 Rax; - DWORD64 Rcx; - DWORD64 Rdx; - DWORD64 Rbx; - DWORD64 Rsp; - DWORD64 Rbp; - DWORD64 Rsi; - DWORD64 Rdi; - DWORD64 R8; - DWORD64 R9; - DWORD64 R10; - DWORD64 R11; - DWORD64 R12; - DWORD64 R13; - DWORD64 R14; - DWORD64 R15; - - // - // Program counter. - // - - DWORD64 Rip; - - // - // Floating point state. - // - - union { - XMM_SAVE_AREA32 FltSave; - struct { - M128A Header[2]; - M128A Legacy[8]; - M128A Xmm0; - M128A Xmm1; - M128A Xmm2; - M128A Xmm3; - M128A Xmm4; - M128A Xmm5; - M128A Xmm6; - M128A Xmm7; - M128A Xmm8; - M128A Xmm9; - M128A Xmm10; - M128A Xmm11; - M128A Xmm12; - M128A Xmm13; - M128A Xmm14; - M128A Xmm15; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; - - // - // Vector registers. - // - - M128A VectorRegister[26]; - DWORD64 VectorControl; - - // - // Special debug control registers. - // - - DWORD64 DebugControl; - DWORD64 LastBranchToRip; - DWORD64 LastBranchFromRip; - DWORD64 LastExceptionToRip; - DWORD64 LastExceptionFromRip; -} CONTEXT, *PCONTEXT; - -// end_ntoshvp -// -// Select platform-specific definitions -// - -typedef struct _IMAGE_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION; -typedef SCOPE_TABLE_AMD64 SCOPE_TABLE, *PSCOPE_TABLE; - -#define RUNTIME_FUNCTION_INDIRECT 0x1 - -// -// Define unwind information flags. -// - -#define UNW_FLAG_NHANDLER 0x0 -#define UNW_FLAG_EHANDLER 0x1 -#define UNW_FLAG_UHANDLER 0x2 -#define UNW_FLAG_CHAININFO 0x4 - -#define UNW_FLAG_NO_EPILOGUE 0x80000000UL // Software only flag - -// -// Define unwind history table structure. -// - -#define UNWIND_HISTORY_TABLE_SIZE 12 - -typedef struct _UNWIND_HISTORY_TABLE_ENTRY { - DWORD64 ImageBase; - PRUNTIME_FUNCTION FunctionEntry; -} UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY; - -typedef struct _UNWIND_HISTORY_TABLE { - DWORD Count; - BYTE LocalHint; - BYTE GlobalHint; - BYTE Search; - BYTE Once; - DWORD64 LowAddress; - DWORD64 HighAddress; - UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE]; -} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE; - -// -// Define dynamic function table entry. -// - -typedef -_Function_class_(GET_RUNTIME_FUNCTION_CALLBACK) -PRUNTIME_FUNCTION -GET_RUNTIME_FUNCTION_CALLBACK ( - _In_ DWORD64 ControlPc, - _In_opt_ PVOID Context - ); -typedef GET_RUNTIME_FUNCTION_CALLBACK *PGET_RUNTIME_FUNCTION_CALLBACK; - -typedef -_Function_class_(OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK) -DWORD -OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK ( - _In_ HANDLE Process, - _In_ PVOID TableAddress, - _Out_ PDWORD Entries, - _Out_ PRUNTIME_FUNCTION* Functions - ); -typedef OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK *POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK; - -#define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME \ - "OutOfProcessFunctionTableCallback" - -// -// Define exception dispatch context structure. -// - -typedef struct _DISPATCHER_CONTEXT { - DWORD64 ControlPc; - DWORD64 ImageBase; - PRUNTIME_FUNCTION FunctionEntry; - DWORD64 EstablisherFrame; - DWORD64 TargetIp; - PCONTEXT ContextRecord; - PEXCEPTION_ROUTINE LanguageHandler; - PVOID HandlerData; - PUNWIND_HISTORY_TABLE HistoryTable; - DWORD ScopeIndex; - DWORD Fill0; -} DISPATCHER_CONTEXT, *PDISPATCHER_CONTEXT; - -// -// Define exception filter and termination handler function types. -// - -struct _EXCEPTION_POINTERS; -typedef -LONG -(*PEXCEPTION_FILTER) ( - struct _EXCEPTION_POINTERS *ExceptionPointers, - PVOID EstablisherFrame - ); - -typedef -VOID -(*PTERMINATION_HANDLER) ( - BOOLEAN AbnormalTermination, - PVOID EstablisherFrame - ); - - -// -// Nonvolatile context pointer record. -// - -typedef struct _KNONVOLATILE_CONTEXT_POINTERS { - union { - PM128A FloatingContext[16]; - struct { - PM128A Xmm0; - PM128A Xmm1; - PM128A Xmm2; - PM128A Xmm3; - PM128A Xmm4; - PM128A Xmm5; - PM128A Xmm6; - PM128A Xmm7; - PM128A Xmm8; - PM128A Xmm9; - PM128A Xmm10; - PM128A Xmm11; - PM128A Xmm12; - PM128A Xmm13; - PM128A Xmm14; - PM128A Xmm15; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; - - union { - PDWORD64 IntegerContext[16]; - struct { - PDWORD64 Rax; - PDWORD64 Rcx; - PDWORD64 Rdx; - PDWORD64 Rbx; - PDWORD64 Rsp; - PDWORD64 Rbp; - PDWORD64 Rsi; - PDWORD64 Rdi; - PDWORD64 R8; - PDWORD64 R9; - PDWORD64 R10; - PDWORD64 R11; - PDWORD64 R12; - PDWORD64 R13; - PDWORD64 R14; - PDWORD64 R15; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME2; - -} KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS; - -#endif // _AMD64_ - -// -// Scope table structure definition. -// - -typedef struct _SCOPE_TABLE_ARM { - DWORD Count; - struct - { - DWORD BeginAddress; - DWORD EndAddress; - DWORD HandlerAddress; - DWORD JumpTarget; - } ScopeRecord[1]; -} SCOPE_TABLE_ARM, *PSCOPE_TABLE_ARM; - - -#ifdef _ARM_ - - -#if defined(_M_ARM) && !defined(RC_INVOKED) && !defined(MIDL_PASS) - -#include - -#if !defined(_M_CEE_PURE) - -#ifdef __cplusplus -extern "C" { -#endif - -// -// Memory barriers and prefetch intrinsics. -// - -#pragma intrinsic(__yield) -#pragma intrinsic(__prefetch) - -#if (_MSC_FULL_VER >= 170040825) -#pragma intrinsic(__dmb) -#pragma intrinsic(__dsb) -#pragma intrinsic(__isb) -#else -#define __dmb(x) { __emit(0xF3BF); __emit(0x8F5F); } -#define __dsb(x) { __emit(0xF3BF); __emit(0x8F4F); } -#define __isb(x) { __emit(0xF3BF); __emit(0x8F6F); } -#endif - -#pragma intrinsic(_ReadWriteBarrier) -#pragma intrinsic(_WriteBarrier) - -FORCEINLINE -VOID -YieldProcessor ( - VOID - ) -{ - __dmb(_ARM_BARRIER_ISHST); - __yield(); -} - -#define MemoryBarrier() __dmb(_ARM_BARRIER_SY) -#define PreFetchCacheLine(l,a) __prefetch((const void *) (a)) -#define PrefetchForWrite(p) __prefetch((const void *) (p)) -#define ReadForWriteAccess(p) (*(p)) - -#define _DataSynchronizationBarrier() __dsb(_ARM_BARRIER_SY) -#define _InstructionSynchronizationBarrier() __isb(_ARM_BARRIER_SY) - -// -// Define bit test intrinsics. -// - -#define BitTest _bittest -#define BitTestAndComplement _bittestandcomplement -#define BitTestAndSet _bittestandset -#define BitTestAndReset _bittestandreset -#define InterlockedBitTestAndSet _interlockedbittestandset -#define InterlockedBitTestAndSetAcquire _interlockedbittestandset_acq -#define InterlockedBitTestAndSetRelease _interlockedbittestandset_rel -#define InterlockedBitTestAndSetNoFence _interlockedbittestandset_nf -#define InterlockedBitTestAndReset _interlockedbittestandreset -#define InterlockedBitTestAndResetAcquire _interlockedbittestandreset_acq -#define InterlockedBitTestAndResetRelease _interlockedbittestandreset_rel -#define InterlockedBitTestAndResetNoFence _interlockedbittestandreset_nf - -#pragma intrinsic(_bittest) -#pragma intrinsic(_bittestandcomplement) -#pragma intrinsic(_bittestandset) -#pragma intrinsic(_bittestandreset) -#pragma intrinsic(_interlockedbittestandset) -#pragma intrinsic(_interlockedbittestandset_acq) -#pragma intrinsic(_interlockedbittestandset_rel) -#pragma intrinsic(_interlockedbittestandset_nf) -#pragma intrinsic(_interlockedbittestandreset) -#pragma intrinsic(_interlockedbittestandreset_acq) -#pragma intrinsic(_interlockedbittestandreset_rel) -#pragma intrinsic(_interlockedbittestandreset_nf) - -// -// Define bit scan functions -// - -#define BitScanForward _BitScanForward -#define BitScanReverse _BitScanReverse - -#pragma intrinsic(_BitScanForward) -#pragma intrinsic(_BitScanReverse) - -// -// Interlocked intrinsic functions. -// - -#pragma intrinsic(_InterlockedAnd8) -#pragma intrinsic(_InterlockedOr8) -#pragma intrinsic(_InterlockedXor8) -#pragma intrinsic(_InterlockedExchangeAdd8) - -#pragma intrinsic(_InterlockedAnd16) -#pragma intrinsic(_InterlockedOr16) -#pragma intrinsic(_InterlockedXor16) -#pragma intrinsic(_InterlockedIncrement16) -#pragma intrinsic(_InterlockedDecrement16) -#pragma intrinsic(_InterlockedCompareExchange16) - -#pragma intrinsic(_InterlockedAnd) -#pragma intrinsic(_InterlockedOr) -#pragma intrinsic(_InterlockedXor) -#pragma intrinsic(_InterlockedIncrement) -#pragma intrinsic(_InterlockedDecrement) -#pragma intrinsic(_InterlockedExchange) -#pragma intrinsic(_InterlockedExchangeAdd) -#pragma intrinsic(_InterlockedCompareExchange) - -#pragma intrinsic(_InterlockedAnd64) -#pragma intrinsic(_InterlockedOr64) -#pragma intrinsic(_InterlockedXor64) -#pragma intrinsic(_InterlockedIncrement64) -#pragma intrinsic(_InterlockedDecrement64) -#pragma intrinsic(_InterlockedExchange64) -#pragma intrinsic(_InterlockedCompareExchange64) - -#pragma intrinsic(_InterlockedExchangePointer) -#pragma intrinsic(_InterlockedCompareExchangePointer) - -#define InterlockedAnd8 _InterlockedAnd8 -#define InterlockedOr8 _InterlockedOr8 -#define InterlockedXor8 _InterlockedXor8 -#define InterlockedExchangeAdd8 _InterlockedExchangeAdd8 - -#define InterlockedAnd16 _InterlockedAnd16 -#define InterlockedOr16 _InterlockedOr16 -#define InterlockedXor16 _InterlockedXor16 -#define InterlockedIncrement16 _InterlockedIncrement16 -#define InterlockedDecrement16 _InterlockedDecrement16 -#define InterlockedCompareExchange16 _InterlockedCompareExchange16 - -#define InterlockedAnd _InterlockedAnd -#define InterlockedOr _InterlockedOr -#define InterlockedXor _InterlockedXor -#define InterlockedIncrement _InterlockedIncrement -#define InterlockedDecrement _InterlockedDecrement -#define InterlockedAdd _InterlockedAdd -#define InterlockedExchange _InterlockedExchange -#define InterlockedExchangeAdd _InterlockedExchangeAdd -#define InterlockedCompareExchange _InterlockedCompareExchange - -#define InterlockedAnd64 _InterlockedAnd64 -#define InterlockedAndAffinity InterlockedAnd64 -#define InterlockedOr64 _InterlockedOr64 -#define InterlockedOrAffinity InterlockedOr64 -#define InterlockedXor64 _InterlockedXor64 -#define InterlockedIncrement64 _InterlockedIncrement64 -#define InterlockedDecrement64 _InterlockedDecrement64 -#define InterlockedAdd64 _InterlockedAdd64 -#define InterlockedExchange64 _InterlockedExchange64 -#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 -#define InterlockedCompareExchange64 _InterlockedCompareExchange64 - -#define InterlockedExchangePointer _InterlockedExchangePointer -#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer - -#pragma intrinsic(_InterlockedExchange16) -#define InterlockedExchange16 _InterlockedExchange16 - -#pragma intrinsic(_InterlockedAnd8_acq) -#pragma intrinsic(_InterlockedAnd8_rel) -#pragma intrinsic(_InterlockedAnd8_nf) -#pragma intrinsic(_InterlockedOr8_acq) -#pragma intrinsic(_InterlockedOr8_rel) -#pragma intrinsic(_InterlockedOr8_nf) -#pragma intrinsic(_InterlockedXor8_acq) -#pragma intrinsic(_InterlockedXor8_rel) -#pragma intrinsic(_InterlockedXor8_nf) - -#pragma intrinsic(_InterlockedAnd16_acq) -#pragma intrinsic(_InterlockedAnd16_rel) -#pragma intrinsic(_InterlockedAnd16_nf) -#pragma intrinsic(_InterlockedOr16_acq) -#pragma intrinsic(_InterlockedOr16_rel) -#pragma intrinsic(_InterlockedOr16_nf) -#pragma intrinsic(_InterlockedXor16_acq) -#pragma intrinsic(_InterlockedXor16_rel) -#pragma intrinsic(_InterlockedXor16_nf) -#pragma intrinsic(_InterlockedIncrement16_acq) -#pragma intrinsic(_InterlockedIncrement16_rel) -#pragma intrinsic(_InterlockedIncrement16_nf) -#pragma intrinsic(_InterlockedDecrement16_acq) -#pragma intrinsic(_InterlockedDecrement16_rel) -#pragma intrinsic(_InterlockedDecrement16_nf) -#pragma intrinsic(_InterlockedExchange16_acq) -#pragma intrinsic(_InterlockedExchange16_nf) -#pragma intrinsic(_InterlockedCompareExchange16_acq) -#pragma intrinsic(_InterlockedCompareExchange16_rel) -#pragma intrinsic(_InterlockedCompareExchange16_nf) - -#pragma intrinsic(_InterlockedAnd_acq) -#pragma intrinsic(_InterlockedAnd_rel) -#pragma intrinsic(_InterlockedAnd_nf) -#pragma intrinsic(_InterlockedOr_acq) -#pragma intrinsic(_InterlockedOr_rel) -#pragma intrinsic(_InterlockedOr_nf) -#pragma intrinsic(_InterlockedXor_acq) -#pragma intrinsic(_InterlockedXor_rel) -#pragma intrinsic(_InterlockedXor_nf) -#pragma intrinsic(_InterlockedIncrement_acq) -#pragma intrinsic(_InterlockedIncrement_rel) -#pragma intrinsic(_InterlockedIncrement_nf) -#pragma intrinsic(_InterlockedDecrement_acq) -#pragma intrinsic(_InterlockedDecrement_rel) -#pragma intrinsic(_InterlockedDecrement_nf) -#pragma intrinsic(_InterlockedExchange_acq) -#pragma intrinsic(_InterlockedExchange_nf) -#pragma intrinsic(_InterlockedExchangeAdd_acq) -#pragma intrinsic(_InterlockedExchangeAdd_rel) -#pragma intrinsic(_InterlockedExchangeAdd_nf) -#pragma intrinsic(_InterlockedCompareExchange_acq) -#pragma intrinsic(_InterlockedCompareExchange_rel) -#pragma intrinsic(_InterlockedCompareExchange_nf) - -#pragma intrinsic(_InterlockedAnd64_acq) -#pragma intrinsic(_InterlockedAnd64_rel) -#pragma intrinsic(_InterlockedAnd64_nf) -#pragma intrinsic(_InterlockedOr64_acq) -#pragma intrinsic(_InterlockedOr64_rel) -#pragma intrinsic(_InterlockedOr64_nf) -#pragma intrinsic(_InterlockedXor64_acq) -#pragma intrinsic(_InterlockedXor64_rel) -#pragma intrinsic(_InterlockedXor64_nf) -#pragma intrinsic(_InterlockedIncrement64_acq) -#pragma intrinsic(_InterlockedIncrement64_rel) -#pragma intrinsic(_InterlockedIncrement64_nf) -#pragma intrinsic(_InterlockedDecrement64_acq) -#pragma intrinsic(_InterlockedDecrement64_rel) -#pragma intrinsic(_InterlockedDecrement64_nf) -#pragma intrinsic(_InterlockedExchange64_acq) -#pragma intrinsic(_InterlockedExchange64_nf) -#pragma intrinsic(_InterlockedCompareExchange64_acq) -#pragma intrinsic(_InterlockedCompareExchange64_rel) -#pragma intrinsic(_InterlockedCompareExchange64_nf) - -#pragma intrinsic(_InterlockedExchangePointer_acq) -#pragma intrinsic(_InterlockedExchangePointer_nf) -#pragma intrinsic(_InterlockedCompareExchangePointer_acq) -#pragma intrinsic(_InterlockedCompareExchangePointer_rel) -#pragma intrinsic(_InterlockedCompareExchangePointer_nf) - -#define InterlockedAndAcquire8 _InterlockedAnd8_acq -#define InterlockedAndRelease8 _InterlockedAnd8_rel -#define InterlockedAndNoFence8 _InterlockedAnd8_nf -#define InterlockedOrAcquire8 _InterlockedOr8_acq -#define InterlockedOrRelease8 _InterlockedOr8_rel -#define InterlockedOrNoFence8 _InterlockedOr8_nf -#define InterlockedXorAcquire8 _InterlockedXor8_acq -#define InterlockedXorRelease8 _InterlockedXor8_rel -#define InterlockedXorNoFence8 _InterlockedXor8_nf - -#define InterlockedAndAcquire16 _InterlockedAnd16_acq -#define InterlockedAndRelease16 _InterlockedAnd16_rel -#define InterlockedAndNoFence16 _InterlockedAnd16_nf -#define InterlockedOrAcquire16 _InterlockedOr16_acq -#define InterlockedOrRelease16 _InterlockedOr16_rel -#define InterlockedOrNoFence16 _InterlockedOr16_nf -#define InterlockedXorAcquire16 _InterlockedXor16_acq -#define InterlockedXorRelease16 _InterlockedXor16_rel -#define InterlockedXorNoFence16 _InterlockedXor16_nf -#define InterlockedIncrementAcquire16 _InterlockedIncrement16_acq -#define InterlockedIncrementRelease16 _InterlockedIncrement16_rel -#define InterlockedIncrementNoFence16 _InterlockedIncrement16_nf -#define InterlockedDecrementAcquire16 _InterlockedDecrement16_acq -#define InterlockedDecrementRelease16 _InterlockedDecrement16_rel -#define InterlockedDecrementNoFence16 _InterlockedDecrement16_nf -#define InterlockedExchangeAcquire16 _InterlockedExchange16_acq -#define InterlockedExchangeNoFence16 _InterlockedExchange16_nf -#define InterlockedCompareExchangeAcquire16 _InterlockedCompareExchange16_acq -#define InterlockedCompareExchangeRelease16 _InterlockedCompareExchange16_rel -#define InterlockedCompareExchangeNoFence16 _InterlockedCompareExchange16_nf - -#define InterlockedAndAcquire _InterlockedAnd_acq -#define InterlockedAndRelease _InterlockedAnd_rel -#define InterlockedAndNoFence _InterlockedAnd_nf -#define InterlockedOrAcquire _InterlockedOr_acq -#define InterlockedOrRelease _InterlockedOr_rel -#define InterlockedOrNoFence _InterlockedOr_nf -#define InterlockedXorAcquire _InterlockedXor_acq -#define InterlockedXorRelease _InterlockedXor_rel -#define InterlockedXorNoFence _InterlockedXor_nf -#define InterlockedIncrementAcquire _InterlockedIncrement_acq -#define InterlockedIncrementRelease _InterlockedIncrement_rel -#define InterlockedIncrementNoFence _InterlockedIncrement_nf -#define InterlockedDecrementAcquire _InterlockedDecrement_acq -#define InterlockedDecrementRelease _InterlockedDecrement_rel -#define InterlockedDecrementNoFence _InterlockedDecrement_nf -#define InterlockedAddAcquire _InterlockedAdd_acq -#define InterlockedAddRelease _InterlockedAdd_rel -#define InterlockedAddNoFence _InterlockedAdd_nf -#define InterlockedExchangeAcquire _InterlockedExchange_acq -#define InterlockedExchangeNoFence _InterlockedExchange_nf -#define InterlockedExchangeAddAcquire _InterlockedExchangeAdd_acq -#define InterlockedExchangeAddRelease _InterlockedExchangeAdd_rel -#define InterlockedExchangeAddNoFence _InterlockedExchangeAdd_nf -#define InterlockedCompareExchangeAcquire _InterlockedCompareExchange_acq -#define InterlockedCompareExchangeRelease _InterlockedCompareExchange_rel -#define InterlockedCompareExchangeNoFence _InterlockedCompareExchange_nf - -#define InterlockedAndAcquire64 _InterlockedAnd64_acq -#define InterlockedAndRelease64 _InterlockedAnd64_rel -#define InterlockedAndNoFence64 _InterlockedAnd64_nf -#define InterlockedOrAcquire64 _InterlockedOr64_acq -#define InterlockedOrRelease64 _InterlockedOr64_rel -#define InterlockedOrNoFence64 _InterlockedOr64_nf -#define InterlockedXorAcquire64 _InterlockedXor64_acq -#define InterlockedXorRelease64 _InterlockedXor64_rel -#define InterlockedXorNoFence64 _InterlockedXor64_nf -#define InterlockedIncrementAcquire64 _InterlockedIncrement64_acq -#define InterlockedIncrementRelease64 _InterlockedIncrement64_rel -#define InterlockedIncrementNoFence64 _InterlockedIncrement64_nf -#define InterlockedDecrementAcquire64 _InterlockedDecrement64_acq -#define InterlockedDecrementRelease64 _InterlockedDecrement64_rel -#define InterlockedDecrementNoFence64 _InterlockedDecrement64_nf -#define InterlockedAddAcquire64 _InterlockedAdd64_acq -#define InterlockedAddRelease64 _InterlockedAdd64_rel -#define InterlockedAddNoFence64 _InterlockedAdd64_nf -#define InterlockedExchangeAcquire64 _InterlockedExchange64_acq -#define InterlockedExchangeNoFence64 _InterlockedExchange64_nf -#define InterlockedExchangeAddAcquire64 _InterlockedExchangeAdd64_acq -#define InterlockedExchangeAddRelease64 _InterlockedExchangeAdd64_rel -#define InterlockedExchangeAddNoFence64 _InterlockedExchangeAdd64_nf -#define InterlockedCompareExchangeAcquire64 _InterlockedCompareExchange64_acq -#define InterlockedCompareExchangeRelease64 _InterlockedCompareExchange64_rel -#define InterlockedCompareExchangeNoFence64 _InterlockedCompareExchange64_nf - -#define InterlockedExchangePointerAcquire _InterlockedExchangePointer_acq -#define InterlockedExchangePointerNoFence _InterlockedExchangePointer_nf -#define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer_acq -#define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer_rel -#define InterlockedCompareExchangePointerNoFence _InterlockedCompareExchangePointer_nf - -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)a, b) -#define InterlockedExchangeAddSizeTAcquire(a, b) InterlockedExchangeAddAcquire((LONG *)a, b) -#define InterlockedExchangeAddSizeTNoFence(a, b) InterlockedExchangeAddNoFence((LONG *)a, b) -#define InterlockedIncrementSizeT(a) InterlockedIncrement((LONG *)a) -#define InterlockedIncrementSizeTNoFence(a) InterlockedIncrementNoFence((LONG *)a) -#define InterlockedDecrementSizeT(a) InterlockedDecrement((LONG *)a) -#define InterlockedDecrementSizeTNoFence(a) InterlockedDecrementNoFence((LONG *)a) - -// -// Define accessors for volatile loads and stores. -// - -#pragma intrinsic(__iso_volatile_load8) -#pragma intrinsic(__iso_volatile_load16) -#pragma intrinsic(__iso_volatile_load32) -#pragma intrinsic(__iso_volatile_load64) -#pragma intrinsic(__iso_volatile_store8) -#pragma intrinsic(__iso_volatile_store16) -#pragma intrinsic(__iso_volatile_store32) -#pragma intrinsic(__iso_volatile_store64) - -// end_wdm end_ntndis end_ntosp end_ntminiport -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -// begin_wdm begin_ntndis begin_ntosp begin_ntminiport - -FORCEINLINE -CHAR -ReadAcquire8 ( - _In_ _Interlocked_operand_ CHAR const volatile *Source - ) - -{ - - CHAR Value; - - Value = __iso_volatile_load8(Source); - __dmb(_ARM_BARRIER_ISH); - return Value; -} - -FORCEINLINE -CHAR -ReadNoFence8 ( - _In_ _Interlocked_operand_ CHAR const volatile *Source - ) - -{ - - CHAR Value; - - Value = __iso_volatile_load8(Source); - return Value; -} - -FORCEINLINE -VOID -WriteRelease8 ( - _Out_ _Interlocked_operand_ CHAR volatile *Destination, - _In_ CHAR Value - ) - -{ - - __dmb(_ARM_BARRIER_ISH); - __iso_volatile_store8(Destination, Value); - return; -} - -FORCEINLINE -VOID -WriteNoFence8 ( - _Out_ _Interlocked_operand_ CHAR volatile *Destination, - _In_ CHAR Value - ) - -{ - - __iso_volatile_store8(Destination, Value); - return; -} - -FORCEINLINE -SHORT -ReadAcquire16 ( - _In_ _Interlocked_operand_ SHORT const volatile *Source - ) - -{ - - SHORT Value; - - Value = __iso_volatile_load16(Source); - __dmb(_ARM_BARRIER_ISH); - return Value; -} - -FORCEINLINE -SHORT -ReadNoFence16 ( - _In_ _Interlocked_operand_ SHORT const volatile *Source - ) - -{ - - SHORT Value; - - Value = __iso_volatile_load16(Source); - return Value; -} - -FORCEINLINE -VOID -WriteRelease16 ( - _Out_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ) - -{ - - __dmb(_ARM_BARRIER_ISH); - __iso_volatile_store16(Destination, Value); - return; -} - -FORCEINLINE -VOID -WriteNoFence16 ( - _Out_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ) - -{ - - __iso_volatile_store16(Destination, Value); - return; -} - -FORCEINLINE -LONG -ReadAcquire ( - _In_ _Interlocked_operand_ LONG const volatile *Source - ) - -{ - - LONG Value; - - Value = __iso_volatile_load32((int *)Source); - __dmb(_ARM_BARRIER_ISH); - return Value; -} - -FORCEINLINE -LONG -ReadNoFence ( - _In_ _Interlocked_operand_ LONG const volatile *Source - ) - -{ - - LONG Value; - - Value = __iso_volatile_load32((int *)Source); - return Value; -} - -CFORCEINLINE -VOID -WriteRelease ( - _Out_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ) - -{ - - __dmb(_ARM_BARRIER_ISH); - __iso_volatile_store32((int *)Destination, Value); - return; -} - -FORCEINLINE -VOID -WriteNoFence ( - _Out_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ) - -{ - - __iso_volatile_store32((int *)Destination, Value); - return; -} - -FORCEINLINE -LONG64 -ReadAcquire64 ( - _In_ _Interlocked_operand_ LONG64 const volatile *Source - ) - -{ - - LONG64 Value; - - Value = __iso_volatile_load64(Source); - __dmb(_ARM_BARRIER_ISH); - return Value; -} - -FORCEINLINE -LONG64 -ReadNoFence64 ( - _In_ _Interlocked_operand_ LONG64 const volatile *Source - ) - -{ - - LONG64 Value; - - Value = __iso_volatile_load64(Source); - return Value; -} - -CFORCEINLINE -VOID -WriteRelease64 ( - _Out_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ) - -{ - - __dmb(_ARM_BARRIER_ISH); - __iso_volatile_store64(Destination, Value); - return; -} - -FORCEINLINE -VOID -WriteNoFence64 ( - _Out_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ) - -{ - - __iso_volatile_store64(Destination, Value); - return; -} - -// end_wdm end_ntndis end_ntosp end_ntminiport -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -// begin_wdm begin_ntndis begin_ntosp begin_ntminiport - -// -// Define coprocessor access intrinsics. Coprocessor 15 contains -// registers for the MMU, cache, TLB, feature bits, core -// identification and performance counters. -// - -#define CP15_PMSELR 15, 0, 9, 12, 5 // Event Counter Selection Register -#define CP15_PMXEVCNTR 15, 0, 9, 13, 2 // Event Count Register -#define CP15_TPIDRURW 15, 0, 13, 0, 2 // Software Thread ID Register, User Read/Write -#define CP15_TPIDRURO 15, 0, 13, 0, 3 // Software Thread ID Register, User Read Only -#define CP15_TPIDRPRW 15, 0, 13, 0, 4 // Software Thread ID Register, Privileged Only - -#pragma intrinsic(_MoveToCoprocessor) -#pragma intrinsic(_MoveFromCoprocessor) - -// -// Coprocessor registers for synchronization -// - -#define _InvalidateBTAC() _MoveToCoprocessor(0, CP15_BPIALL) - -// -// PreFetchCacheLine level defines. -// - -#define PF_TEMPORAL_LEVEL_1 0 -#define PF_TEMPORAL_LEVEL_2 1 -#define PF_TEMPORAL_LEVEL_3 2 -#define PF_NON_TEMPORAL_LEVEL_ALL 3 - -// -// Define function to read the value of the time stamp counter which -// ARM doesn't have. -// - -DWORD64 -ReadTimeStampCounter( - VOID - ); - -FORCEINLINE -DWORD64 -ReadPMC ( - _In_ DWORD Counter - ) -{ - - _MoveToCoprocessor(Counter, CP15_PMSELR); - return (DWORD64)_MoveFromCoprocessor(CP15_PMXEVCNTR); -} - -#ifdef __cplusplus -} -#endif - -#endif // !defined(_M_CEE_PURE) - -#endif // defined(_M_ARM) && !defined(RC_INVOKED) && !defined(MIDL_PASS) && !defined(_M_CEE_PURE) - -#if defined(_M_CEE_PURE) -FORCEINLINE -VOID -YieldProcessor ( - VOID - ) -{ -} -#endif - -// -// The following values specify the type of access in the first parameter -// of the exception record whan the exception code specifies an access -// violation. -// - -#define EXCEPTION_READ_FAULT 0 // exception caused by a read -#define EXCEPTION_WRITE_FAULT 1 // exception caused by a write -#define EXCEPTION_EXECUTE_FAULT 8 // exception caused by an instruction fetch - -// begin_wx86 -// -// The following flags control the contents of the CONTEXT structure. -// - -#if !defined(RC_INVOKED) - -#define CONTEXT_ARM 0x00200000L - -// end_wx86 - -#define CONTEXT_CONTROL (CONTEXT_ARM | 0x1L) -#define CONTEXT_INTEGER (CONTEXT_ARM | 0x2L) -#define CONTEXT_FLOATING_POINT (CONTEXT_ARM | 0x4L) -#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM | 0x8L) - -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT) - -#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS) - -#define CONTEXT_EXCEPTION_ACTIVE 0x8000000L -#define CONTEXT_SERVICE_ACTIVE 0x10000000L -#define CONTEXT_EXCEPTION_REQUEST 0x40000000L -#define CONTEXT_EXCEPTION_REPORTING 0x80000000L - -// -// This flag is set by the unwinder if it has unwound to a call -// site, and cleared whenever it unwinds through a trap frame. -// It is used by language-specific exception handlers to help -// differentiate exception scopes during dispatching. -// - -#define CONTEXT_UNWOUND_TO_CALL 0x20000000 - -// begin_wx86 - -#endif // !defined(RC_INVOKED) - -// -// Define initial Cpsr/Fpscr value -// - -#define INITIAL_CPSR 0x10 -#define INITIAL_FPSCR 0 - -// -// Specify the number of breakpoints and watchpoints that the OS -// will track. Architecturally, ARM supports up to 16. In practice, -// however, almost no one implements more than 4 of each. -// - -#define ARM_MAX_BREAKPOINTS 8 -#define ARM_MAX_WATCHPOINTS 1 - -// -// Context Frame -// -// This frame has a several purposes: 1) it is used as an argument to -// NtContinue, 2) it is used to constuct a call frame for APC delivery, -// and 3) it is used in the user level thread creation routines. -// -// -// The flags field within this record controls the contents of a CONTEXT -// record. -// -// If the context record is used as an input parameter, then for each -// portion of the context record controlled by a flag whose value is -// set, it is assumed that that portion of the context record contains -// valid context. If the context record is being used to modify a threads -// context, then only that portion of the threads context is modified. -// -// If the context record is used as an output parameter to capture the -// context of a thread, then only those portions of the thread's context -// corresponding to set flags will be returned. -// -// CONTEXT_CONTROL specifies Sp, Lr, Pc, and Cpsr -// -// CONTEXT_INTEGER specifies R0-R12 -// -// CONTEXT_FLOATING_POINT specifies Q0-Q15 / D0-D31 / S0-S31 -// -// CONTEXT_DEBUG_REGISTERS specifies up to 16 of DBGBVR, DBGBCR, DBGWVR, -// DBGWCR. -// - -typedef struct _NEON128 { - ULONGLONG Low; - LONGLONG High; -} NEON128, *PNEON128; - -typedef struct DECLSPEC_ALIGN(8) DECLSPEC_NOINITALL _CONTEXT { - - // - // Control flags. - // - - DWORD ContextFlags; - - // - // Integer registers - // - - DWORD R0; - DWORD R1; - DWORD R2; - DWORD R3; - DWORD R4; - DWORD R5; - DWORD R6; - DWORD R7; - DWORD R8; - DWORD R9; - DWORD R10; - DWORD R11; - DWORD R12; - - // - // Control Registers - // - - DWORD Sp; - DWORD Lr; - DWORD Pc; - DWORD Cpsr; - - // - // Floating Point/NEON Registers - // - - DWORD Fpscr; - DWORD Padding; - union { - NEON128 Q[16]; - ULONGLONG D[32]; - DWORD S[32]; - } DUMMYUNIONNAME; - - // - // Debug registers - // - - DWORD Bvr[ARM_MAX_BREAKPOINTS]; - DWORD Bcr[ARM_MAX_BREAKPOINTS]; - DWORD Wvr[ARM_MAX_WATCHPOINTS]; - DWORD Wcr[ARM_MAX_WATCHPOINTS]; - - DWORD Padding2[2]; - -} CONTEXT, *PCONTEXT; - -// -// Select platform-specific definitions -// - -typedef struct _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION; -typedef SCOPE_TABLE_ARM SCOPE_TABLE, *PSCOPE_TABLE; - -// -// Define unwind information flags. -// - -#define UNW_FLAG_NHANDLER 0x0 /* any handler */ -#define UNW_FLAG_EHANDLER 0x1 /* filter handler */ -#define UNW_FLAG_UHANDLER 0x2 /* unwind handler */ - -// -// Define unwind history table structure. -// - -#define UNWIND_HISTORY_TABLE_SIZE 12 - -typedef struct _UNWIND_HISTORY_TABLE_ENTRY { - DWORD ImageBase; - PRUNTIME_FUNCTION FunctionEntry; -} UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY; - -typedef struct _UNWIND_HISTORY_TABLE { - DWORD Count; - BYTE LocalHint; - BYTE GlobalHint; - BYTE Search; - BYTE Once; - DWORD LowAddress; - DWORD HighAddress; - UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE]; -} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE; - -// -// Define exception dispatch context structure. -// - -typedef struct _DISPATCHER_CONTEXT { - DWORD ControlPc; - DWORD ImageBase; - PRUNTIME_FUNCTION FunctionEntry; - DWORD EstablisherFrame; - DWORD TargetPc; - PCONTEXT ContextRecord; - PEXCEPTION_ROUTINE LanguageHandler; - PVOID HandlerData; - PUNWIND_HISTORY_TABLE HistoryTable; - DWORD ScopeIndex; - BOOLEAN ControlPcIsUnwound; - PBYTE NonVolatileRegisters; - DWORD Reserved; -} DISPATCHER_CONTEXT, *PDISPATCHER_CONTEXT; - -// -// Define exception filter and termination handler function types. -// N.B. These functions use a custom calling convention. -// - -struct _EXCEPTION_POINTERS; -typedef -LONG -(*PEXCEPTION_FILTER) ( - struct _EXCEPTION_POINTERS *ExceptionPointers, - DWORD EstablisherFrame - ); - -typedef -VOID -(*PTERMINATION_HANDLER) ( - BOOLEAN AbnormalTermination, - DWORD EstablisherFrame - ); - -// -// Define dynamic function table entry. -// - -typedef -_Function_class_(GET_RUNTIME_FUNCTION_CALLBACK) -PRUNTIME_FUNCTION -GET_RUNTIME_FUNCTION_CALLBACK ( - _In_ DWORD ControlPc, - _In_opt_ PVOID Context - ); -typedef GET_RUNTIME_FUNCTION_CALLBACK *PGET_RUNTIME_FUNCTION_CALLBACK; - -typedef -_Function_class_(OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK) -DWORD -OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK ( - _In_ HANDLE Process, - _In_ PVOID TableAddress, - _Out_ PDWORD Entries, - _Out_ PRUNTIME_FUNCTION* Functions - ); -typedef OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK *POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK; - -#define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME \ - "OutOfProcessFunctionTableCallback" - - -// -// Nonvolatile context pointer record. -// - -typedef struct _KNONVOLATILE_CONTEXT_POINTERS { - - PDWORD R4; - PDWORD R5; - PDWORD R6; - PDWORD R7; - PDWORD R8; - PDWORD R9; - PDWORD R10; - PDWORD R11; - PDWORD Lr; - - PULONGLONG D8; - PULONGLONG D9; - PULONGLONG D10; - PULONGLONG D11; - PULONGLONG D12; - PULONGLONG D13; - PULONGLONG D14; - PULONGLONG D15; - -} KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS; - -#endif // _ARM_ - -// -// Scope table structure definition. -// - -typedef struct _SCOPE_TABLE_ARM64 { - DWORD Count; - struct - { - DWORD BeginAddress; - DWORD EndAddress; - DWORD HandlerAddress; - DWORD JumpTarget; - } ScopeRecord[1]; -} SCOPE_TABLE_ARM64, *PSCOPE_TABLE_ARM64; - -// begin_ntddk begin_wdm begin_nthal begin_ntminiport begin_wx86 - -#if defined(_ARM64_) || defined(_CHPE_X86_ARM64_) - -// end_ntddk end_wdm end_nthal end_ntminiport end_wx86 - -#if !defined(_M_CEE_PURE) -#if !defined(RC_INVOKED) && !defined(MIDL_PASS) - -#include - -#if defined(_M_ARM64) - -#pragma intrinsic(__readx18byte) -#pragma intrinsic(__readx18word) -#pragma intrinsic(__readx18dword) -#pragma intrinsic(__readx18qword) - -#pragma intrinsic(__writex18byte) -#pragma intrinsic(__writex18word) -#pragma intrinsic(__writex18dword) -#pragma intrinsic(__writex18qword) - -#pragma intrinsic(__addx18byte) -#pragma intrinsic(__addx18word) -#pragma intrinsic(__addx18dword) -#pragma intrinsic(__addx18qword) - -#pragma intrinsic(__incx18byte) -#pragma intrinsic(__incx18word) -#pragma intrinsic(__incx18dword) -#pragma intrinsic(__incx18qword) - -// -// Define bit test intrinsics. -// - -#define BitTest _bittest -#define BitTestAndComplement _bittestandcomplement -#define BitTestAndSet _bittestandset -#define BitTestAndReset _bittestandreset -#define InterlockedBitTestAndSet _interlockedbittestandset -#define InterlockedBitTestAndSetAcquire _interlockedbittestandset_acq -#define InterlockedBitTestAndSetRelease _interlockedbittestandset_rel -#define InterlockedBitTestAndSetNoFence _interlockedbittestandset_nf -#define InterlockedBitTestAndReset _interlockedbittestandreset -#define InterlockedBitTestAndResetAcquire _interlockedbittestandreset_acq -#define InterlockedBitTestAndResetRelease _interlockedbittestandreset_rel -#define InterlockedBitTestAndResetNoFence _interlockedbittestandreset_nf - -#define BitTest64 _bittest64 -#define BitTestAndComplement64 _bittestandcomplement64 -#define BitTestAndSet64 _bittestandset64 -#define BitTestAndReset64 _bittestandreset64 -#define InterlockedBitTestAndSet64 _interlockedbittestandset64 -#define InterlockedBitTestAndSet64Acquire _interlockedbittestandset64 -#define InterlockedBitTestAndSet64Release _interlockedbittestandset64 -#define InterlockedBitTestAndReset64 _interlockedbittestandreset64 -#define InterlockedBitTestAndReset64Acquire _interlockedbittestandreset64 -#define InterlockedBitTestAndReset64Release _interlockedbittestandreset64 - -#pragma intrinsic(_bittest) -#pragma intrinsic(_bittestandcomplement) -#pragma intrinsic(_bittestandset) -#pragma intrinsic(_bittestandreset) -#pragma intrinsic(_interlockedbittestandset) -#pragma intrinsic(_interlockedbittestandset_acq) -#pragma intrinsic(_interlockedbittestandset_rel) -#pragma intrinsic(_interlockedbittestandreset) -#pragma intrinsic(_interlockedbittestandreset_acq) -#pragma intrinsic(_interlockedbittestandreset_rel) - -#pragma intrinsic(_bittest64) -#pragma intrinsic(_bittestandcomplement64) -#pragma intrinsic(_bittestandset64) -#pragma intrinsic(_bittestandreset64) - -#pragma intrinsic(_interlockedbittestandset64) -#pragma intrinsic(_interlockedbittestandset64_acq) -#pragma intrinsic(_interlockedbittestandset64_rel) -#pragma intrinsic(_interlockedbittestandreset64) -#pragma intrinsic(_interlockedbittestandreset64_acq) -#pragma intrinsic(_interlockedbittestandreset64_rel) - -// -// Define bit scan functions -// - -#define BitScanForward _BitScanForward -#define BitScanReverse _BitScanReverse -#define BitScanForward64 _BitScanForward64 -#define BitScanReverse64 _BitScanReverse64 - -#pragma intrinsic(_BitScanForward) -#pragma intrinsic(_BitScanReverse) -#pragma intrinsic(_BitScanForward64) -#pragma intrinsic(_BitScanReverse64) - -// -// Interlocked intrinsic functions. -// - -#pragma intrinsic(_InterlockedAnd8) -#pragma intrinsic(_InterlockedOr8) -#pragma intrinsic(_InterlockedXor8) -#pragma intrinsic(_InterlockedExchangeAdd8) - -#pragma intrinsic(_InterlockedAnd16) -#pragma intrinsic(_InterlockedOr16) -#pragma intrinsic(_InterlockedXor16) -#pragma intrinsic(_InterlockedIncrement16) -#pragma intrinsic(_InterlockedDecrement16) -#pragma intrinsic(_InterlockedCompareExchange16) - -#pragma intrinsic(_InterlockedAnd) -#pragma intrinsic(_InterlockedOr) -#pragma intrinsic(_InterlockedXor) -#pragma intrinsic(_InterlockedIncrement) -#pragma intrinsic(_InterlockedDecrement) -#pragma intrinsic(_InterlockedExchange) -#pragma intrinsic(_InterlockedExchangeAdd) -#pragma intrinsic(_InterlockedCompareExchange) - -#pragma intrinsic(_InterlockedAnd64) -#pragma intrinsic(_InterlockedOr64) -#pragma intrinsic(_InterlockedXor64) -#pragma intrinsic(_InterlockedIncrement64) -#pragma intrinsic(_InterlockedDecrement64) -#pragma intrinsic(_InterlockedExchange64) -#pragma intrinsic(_InterlockedCompareExchange64) - -#pragma intrinsic(_InterlockedCompareExchange128) -#pragma intrinsic(_InterlockedExchangePointer) -#pragma intrinsic(_InterlockedCompareExchangePointer) - -#define InterlockedAnd8 _InterlockedAnd8 -#define InterlockedOr8 _InterlockedOr8 -#define InterlockedXor8 _InterlockedXor8 -#define InterlockedExchangeAdd8 _InterlockedExchangeAdd8 - -#define InterlockedAnd16 _InterlockedAnd16 -#define InterlockedOr16 _InterlockedOr16 -#define InterlockedXor16 _InterlockedXor16 -#define InterlockedIncrement16 _InterlockedIncrement16 -#define InterlockedDecrement16 _InterlockedDecrement16 -#define InterlockedCompareExchange16 _InterlockedCompareExchange16 - -#define InterlockedAnd _InterlockedAnd -#define InterlockedOr _InterlockedOr -#define InterlockedXor _InterlockedXor -#define InterlockedIncrement _InterlockedIncrement -#define InterlockedDecrement _InterlockedDecrement -#define InterlockedAdd _InterlockedAdd -#define InterlockedExchange _InterlockedExchange -#define InterlockedExchangeAdd _InterlockedExchangeAdd -#define InterlockedCompareExchange _InterlockedCompareExchange - -#define InterlockedAnd64 _InterlockedAnd64 -#define InterlockedAndAffinity InterlockedAnd64 -#define InterlockedOr64 _InterlockedOr64 -#define InterlockedOrAffinity InterlockedOr64 -#define InterlockedXor64 _InterlockedXor64 -#define InterlockedIncrement64 _InterlockedIncrement64 -#define InterlockedDecrement64 _InterlockedDecrement64 -#define InterlockedAdd64 _InterlockedAdd64 -#define InterlockedExchange64 _InterlockedExchange64 -#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 -#define InterlockedCompareExchange64 _InterlockedCompareExchange64 - -#define InterlockedExchangePointer _InterlockedExchangePointer -#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer - -#pragma intrinsic(_InterlockedExchange16) -#define InterlockedExchange16 _InterlockedExchange16 - -#pragma intrinsic(_InterlockedAnd8_acq) -#pragma intrinsic(_InterlockedAnd8_rel) -#pragma intrinsic(_InterlockedAnd8_nf) -#pragma intrinsic(_InterlockedOr8_acq) -#pragma intrinsic(_InterlockedOr8_rel) -#pragma intrinsic(_InterlockedOr8_nf) -#pragma intrinsic(_InterlockedXor8_acq) -#pragma intrinsic(_InterlockedXor8_rel) -#pragma intrinsic(_InterlockedXor8_nf) - -#pragma intrinsic(_InterlockedAnd16_acq) -#pragma intrinsic(_InterlockedAnd16_rel) -#pragma intrinsic(_InterlockedAnd16_nf) -#pragma intrinsic(_InterlockedOr16_acq) -#pragma intrinsic(_InterlockedOr16_rel) -#pragma intrinsic(_InterlockedOr16_nf) -#pragma intrinsic(_InterlockedXor16_acq) -#pragma intrinsic(_InterlockedXor16_rel) -#pragma intrinsic(_InterlockedXor16_nf) -#pragma intrinsic(_InterlockedIncrement16_acq) -#pragma intrinsic(_InterlockedIncrement16_rel) -#pragma intrinsic(_InterlockedIncrement16_nf) -#pragma intrinsic(_InterlockedDecrement16_acq) -#pragma intrinsic(_InterlockedDecrement16_rel) -#pragma intrinsic(_InterlockedDecrement16_nf) -#pragma intrinsic(_InterlockedExchange16_acq) -#pragma intrinsic(_InterlockedExchange16_nf) -#pragma intrinsic(_InterlockedCompareExchange16_acq) -#pragma intrinsic(_InterlockedCompareExchange16_rel) -#pragma intrinsic(_InterlockedCompareExchange16_nf) - -#pragma intrinsic(_InterlockedAnd_acq) -#pragma intrinsic(_InterlockedAnd_rel) -#pragma intrinsic(_InterlockedAnd_nf) -#pragma intrinsic(_InterlockedOr_acq) -#pragma intrinsic(_InterlockedOr_rel) -#pragma intrinsic(_InterlockedOr_nf) -#pragma intrinsic(_InterlockedXor_acq) -#pragma intrinsic(_InterlockedXor_rel) -#pragma intrinsic(_InterlockedXor_nf) -#pragma intrinsic(_InterlockedIncrement_acq) -#pragma intrinsic(_InterlockedIncrement_rel) -#pragma intrinsic(_InterlockedIncrement_nf) -#pragma intrinsic(_InterlockedDecrement_acq) -#pragma intrinsic(_InterlockedDecrement_rel) -#pragma intrinsic(_InterlockedDecrement_nf) -#pragma intrinsic(_InterlockedExchange_acq) -#pragma intrinsic(_InterlockedExchange_nf) -#pragma intrinsic(_InterlockedExchangeAdd_acq) -#pragma intrinsic(_InterlockedExchangeAdd_rel) -#pragma intrinsic(_InterlockedExchangeAdd_nf) -#pragma intrinsic(_InterlockedCompareExchange_rel) -#pragma intrinsic(_InterlockedCompareExchange_nf) - -#pragma intrinsic(_InterlockedAnd64_acq) -#pragma intrinsic(_InterlockedAnd64_rel) -#pragma intrinsic(_InterlockedAnd64_nf) -#pragma intrinsic(_InterlockedOr64_acq) -#pragma intrinsic(_InterlockedOr64_rel) -#pragma intrinsic(_InterlockedOr64_nf) -#pragma intrinsic(_InterlockedXor64_acq) -#pragma intrinsic(_InterlockedXor64_rel) -#pragma intrinsic(_InterlockedXor64_nf) -#pragma intrinsic(_InterlockedIncrement64_acq) -#pragma intrinsic(_InterlockedIncrement64_rel) -#pragma intrinsic(_InterlockedIncrement64_nf) -#pragma intrinsic(_InterlockedDecrement64_acq) -#pragma intrinsic(_InterlockedDecrement64_rel) -#pragma intrinsic(_InterlockedDecrement64_nf) -#pragma intrinsic(_InterlockedExchange64_acq) -#pragma intrinsic(_InterlockedExchange64_nf) -#pragma intrinsic(_InterlockedCompareExchange64_acq) -#pragma intrinsic(_InterlockedCompareExchange64_rel) -#pragma intrinsic(_InterlockedCompareExchange64_nf) - -#pragma intrinsic(_InterlockedExchangePointer_acq) -#pragma intrinsic(_InterlockedExchangePointer_nf) -#pragma intrinsic(_InterlockedCompareExchangePointer_acq) -#pragma intrinsic(_InterlockedCompareExchangePointer_rel) -#pragma intrinsic(_InterlockedCompareExchangePointer_nf) - -#define InterlockedAndAcquire8 _InterlockedAnd8_acq -#define InterlockedAndRelease8 _InterlockedAnd8_rel -#define InterlockedAndNoFence8 _InterlockedAnd8_nf -#define InterlockedOrAcquire8 _InterlockedOr8_acq -#define InterlockedOrRelease8 _InterlockedOr8_rel -#define InterlockedOrNoFence8 _InterlockedOr8_nf -#define InterlockedXorAcquire8 _InterlockedXor8_acq -#define InterlockedXorRelease8 _InterlockedXor8_rel -#define InterlockedXorNoFence8 _InterlockedXor8_nf - -#define InterlockedAndAcquire16 _InterlockedAnd16_acq -#define InterlockedAndRelease16 _InterlockedAnd16_rel -#define InterlockedAndNoFence16 _InterlockedAnd16_nf -#define InterlockedOrAcquire16 _InterlockedOr16_acq -#define InterlockedOrRelease16 _InterlockedOr16_rel -#define InterlockedOrNoFence16 _InterlockedOr16_nf -#define InterlockedXorAcquire16 _InterlockedXor16_acq -#define InterlockedXorRelease16 _InterlockedXor16_rel -#define InterlockedXorNoFence16 _InterlockedXor16_nf -#define InterlockedIncrementAcquire16 _InterlockedIncrement16_acq -#define InterlockedIncrementRelease16 _InterlockedIncrement16_rel -#define InterlockedIncrementNoFence16 _InterlockedIncrement16_nf -#define InterlockedDecrementAcquire16 _InterlockedDecrement16_acq -#define InterlockedDecrementRelease16 _InterlockedDecrement16_rel -#define InterlockedDecrementNoFence16 _InterlockedDecrement16_nf -#define InterlockedExchangeAcquire16 _InterlockedExchange16_acq -#define InterlockedExchangeNoFence16 _InterlockedExchange16_nf -#define InterlockedCompareExchangeAcquire16 _InterlockedCompareExchange16_acq -#define InterlockedCompareExchangeRelease16 _InterlockedCompareExchange16_rel -#define InterlockedCompareExchangeNoFence16 _InterlockedCompareExchange16_nf - -#define InterlockedAndAcquire _InterlockedAnd_acq -#define InterlockedAndRelease _InterlockedAnd_rel -#define InterlockedAndNoFence _InterlockedAnd_nf -#define InterlockedOrAcquire _InterlockedOr_acq -#define InterlockedOrRelease _InterlockedOr_rel -#define InterlockedOrNoFence _InterlockedOr_nf -#define InterlockedXorAcquire _InterlockedXor_acq -#define InterlockedXorRelease _InterlockedXor_rel -#define InterlockedXorNoFence _InterlockedXor_nf -#define InterlockedIncrementAcquire _InterlockedIncrement_acq -#define InterlockedIncrementRelease _InterlockedIncrement_rel -#define InterlockedIncrementNoFence _InterlockedIncrement_nf -#define InterlockedDecrementAcquire _InterlockedDecrement_acq -#define InterlockedDecrementRelease _InterlockedDecrement_rel -#define InterlockedDecrementNoFence _InterlockedDecrement_nf -#define InterlockedAddAcquire _InterlockedAdd_acq -#define InterlockedAddRelease _InterlockedAdd_rel -#define InterlockedAddNoFence _InterlockedAdd_nf -#define InterlockedExchangeAcquire _InterlockedExchange_acq -#define InterlockedExchangeNoFence _InterlockedExchange_nf -#define InterlockedExchangeAddAcquire _InterlockedExchangeAdd_acq -#define InterlockedExchangeAddRelease _InterlockedExchangeAdd_rel -#define InterlockedExchangeAddNoFence _InterlockedExchangeAdd_nf -#define InterlockedCompareExchangeAcquire _InterlockedCompareExchange_acq -#define InterlockedCompareExchangeRelease _InterlockedCompareExchange_rel -#define InterlockedCompareExchangeNoFence _InterlockedCompareExchange_nf - -#define InterlockedAndAcquire64 _InterlockedAnd64_acq -#define InterlockedAndRelease64 _InterlockedAnd64_rel -#define InterlockedAndNoFence64 _InterlockedAnd64_nf -#define InterlockedOrAcquire64 _InterlockedOr64_acq -#define InterlockedOrRelease64 _InterlockedOr64_rel -#define InterlockedOrNoFence64 _InterlockedOr64_nf -#define InterlockedXorAcquire64 _InterlockedXor64_acq -#define InterlockedXorRelease64 _InterlockedXor64_rel -#define InterlockedXorNoFence64 _InterlockedXor64_nf -#define InterlockedIncrementAcquire64 _InterlockedIncrement64_acq -#define InterlockedIncrementRelease64 _InterlockedIncrement64_rel -#define InterlockedIncrementNoFence64 _InterlockedIncrement64_nf -#define InterlockedDecrementAcquire64 _InterlockedDecrement64_acq -#define InterlockedDecrementRelease64 _InterlockedDecrement64_rel -#define InterlockedDecrementNoFence64 _InterlockedDecrement64_nf -#define InterlockedAddAcquire64 _InterlockedAdd64_acq -#define InterlockedAddRelease64 _InterlockedAdd64_rel -#define InterlockedAddNoFence64 _InterlockedAdd64_nf -#define InterlockedExchangeAcquire64 _InterlockedExchange64_acq -#define InterlockedExchangeNoFence64 _InterlockedExchange64_nf -#define InterlockedExchangeAddAcquire64 _InterlockedExchangeAdd64_acq -#define InterlockedExchangeAddRelease64 _InterlockedExchangeAdd64_rel -#define InterlockedExchangeAddNoFence64 _InterlockedExchangeAdd64_nf -#define InterlockedCompareExchangeAcquire64 _InterlockedCompareExchange64_acq -#define InterlockedCompareExchangeRelease64 _InterlockedCompareExchange64_rel -#define InterlockedCompareExchangeNoFence64 _InterlockedCompareExchange64_nf -#define InterlockedCompareExchange128 _InterlockedCompareExchange128 - -// AMD64_WORKITEM : these are redundant but necessary for AMD64 compatibility -#define InterlockedAnd64Acquire _InterlockedAnd64_acq -#define InterlockedAnd64Release _InterlockedAnd64_rel -#define InterlockedAnd64NoFence _InterlockedAnd64_nf -#define InterlockedOr64Acquire _InterlockedOr64_acq -#define InterlockedOr64Release _InterlockedOr64_rel -#define InterlockedOr64NoFence _InterlockedOr64_nf -#define InterlockedXor64Acquire _InterlockedXor64_acq -#define InterlockedXor64Release _InterlockedXor64_rel -#define InterlockedXor64NoFence _InterlockedXor64_nf - -#define InterlockedExchangePointerAcquire _InterlockedExchangePointer_acq -#define InterlockedExchangePointerNoFence _InterlockedExchangePointer_nf -#define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer_acq -#define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer_rel -#define InterlockedCompareExchangePointerNoFence _InterlockedCompareExchangePointer_nf - -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONG64 *)a, b) -#define InterlockedExchangeAddSizeTAcquire(a, b) InterlockedExchangeAddAcquire64((LONG64 *)a, b) -#define InterlockedExchangeAddSizeTNoFence(a, b) InterlockedExchangeAddNoFence64((LONG64 *)a, b) -#define InterlockedIncrementSizeT(a) InterlockedIncrement64((LONG64 *)a) -#define InterlockedIncrementSizeTNoFence(a) InterlockedIncrementNoFence64((LONG64 *)a) -#define InterlockedDecrementSizeT(a) InterlockedDecrement64((LONG64 *)a) -#define InterlockedDecrementSizeTNoFence(a) InterlockedDecrementNoFence64((LONG64 *)a) - -#endif // defined(_M_ARM64) - -#if defined(_M_ARM64) || defined(_M_HYBRID_X86_ARM64) - -#pragma intrinsic(__getReg) -#pragma intrinsic(__getCallerReg) -#pragma intrinsic(__getRegFp) -#pragma intrinsic(__getCallerRegFp) - -#pragma intrinsic(__setReg) -#pragma intrinsic(__setCallerReg) -#pragma intrinsic(__setRegFp) -#pragma intrinsic(__setCallerRegFp) - -// -// Memory barriers and prefetch intrinsics. -// - -#pragma intrinsic(__yield) -#pragma intrinsic(__prefetch) - -#pragma intrinsic(__dmb) -#pragma intrinsic(__dsb) -#pragma intrinsic(__isb) - -#pragma intrinsic(_ReadWriteBarrier) -#pragma intrinsic(_WriteBarrier) - -#define MemoryBarrier() __dmb(_ARM64_BARRIER_SY) -#define PreFetchCacheLine(l,a) __prefetch((const void *) (a)) -#define PrefetchForWrite(p) __prefetch((const void *) (p)) -#define ReadForWriteAccess(p) (*(p)) - -#define _DataSynchronizationBarrier() __dsb(_ARM64_BARRIER_SY) -#define _InstructionSynchronizationBarrier() __isb(_ARM64_BARRIER_SY) - -FORCEINLINE -VOID -YieldProcessor ( - VOID - ) -{ - __dmb(_ARM64_BARRIER_ISHST); - __yield(); -} - -// -// Define accessors for volatile loads and stores. -// - -#pragma intrinsic(__iso_volatile_load8) -#pragma intrinsic(__iso_volatile_load16) -#pragma intrinsic(__iso_volatile_load32) -#pragma intrinsic(__iso_volatile_load64) -#pragma intrinsic(__iso_volatile_store8) -#pragma intrinsic(__iso_volatile_store16) -#pragma intrinsic(__iso_volatile_store32) -#pragma intrinsic(__iso_volatile_store64) - -// end_wdm end_ntndis end_ntosp end_ntminiport end_ntoshvp -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -// begin_wdm begin_ntndis begin_ntosp begin_ntminiport begin_ntoshvp - -FORCEINLINE -CHAR -ReadAcquire8 ( - _In_ _Interlocked_operand_ CHAR const volatile *Source - ) - -{ - - CHAR Value; - - Value = __iso_volatile_load8(Source); - __dmb(_ARM64_BARRIER_ISH); - return Value; -} - -FORCEINLINE -CHAR -ReadNoFence8 ( - _In_ _Interlocked_operand_ CHAR const volatile *Source - ) - -{ - - CHAR Value; - - Value = __iso_volatile_load8(Source); - return Value; -} - -FORCEINLINE -VOID -WriteRelease8 ( - _Out_ _Interlocked_operand_ CHAR volatile *Destination, - _In_ CHAR Value - ) - -{ - - __dmb(_ARM64_BARRIER_ISH); - __iso_volatile_store8(Destination, Value); - return; -} - -FORCEINLINE -VOID -WriteNoFence8 ( - _Out_ _Interlocked_operand_ CHAR volatile *Destination, - _In_ CHAR Value - ) - -{ - - __iso_volatile_store8(Destination, Value); - return; -} - -FORCEINLINE -SHORT -ReadAcquire16 ( - _In_ _Interlocked_operand_ SHORT const volatile *Source - ) - -{ - - SHORT Value; - - Value = __iso_volatile_load16(Source); - __dmb(_ARM64_BARRIER_ISH); - return Value; -} - -FORCEINLINE -SHORT -ReadNoFence16 ( - _In_ _Interlocked_operand_ SHORT const volatile *Source - ) - -{ - - SHORT Value; - - Value = __iso_volatile_load16(Source); - return Value; -} - -FORCEINLINE -VOID -WriteRelease16 ( - _Out_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ) - -{ - - __dmb(_ARM64_BARRIER_ISH); - __iso_volatile_store16(Destination, Value); - return; -} - -FORCEINLINE -VOID -WriteNoFence16 ( - _Out_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ) - -{ - - __iso_volatile_store16(Destination, Value); - return; -} - -FORCEINLINE -LONG -ReadAcquire ( - _In_ _Interlocked_operand_ LONG const volatile *Source - ) - -{ - - LONG Value; - - Value = __iso_volatile_load32((int *)Source); - __dmb(_ARM64_BARRIER_ISH); - return Value; -} - -FORCEINLINE -LONG -ReadNoFence ( - _In_ _Interlocked_operand_ LONG const volatile *Source - ) - -{ - - LONG Value; - - Value = __iso_volatile_load32((int *)Source); - return Value; -} - -FORCEINLINE -VOID -WriteRelease ( - _Out_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ) - -{ - - __dmb(_ARM64_BARRIER_ISH); - __iso_volatile_store32((int *)Destination, Value); - return; -} - -FORCEINLINE -VOID -WriteNoFence ( - _Out_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ) - -{ - - __iso_volatile_store32((int *)Destination, Value); - return; -} - -FORCEINLINE -LONG64 -ReadAcquire64 ( - _In_ _Interlocked_operand_ LONG64 const volatile *Source - ) - -{ - - LONG64 Value; - - Value = __iso_volatile_load64(Source); - __dmb(_ARM64_BARRIER_ISH); - return Value; -} - -FORCEINLINE -LONG64 -ReadNoFence64 ( - _In_ _Interlocked_operand_ LONG64 const volatile *Source - ) - -{ - - LONG64 Value; - - Value = __iso_volatile_load64(Source); - return Value; -} - -FORCEINLINE -VOID -WriteRelease64 ( - _Out_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ) - -{ - - __dmb(_ARM64_BARRIER_ISH); - __iso_volatile_store64(Destination, Value); - return; -} - -FORCEINLINE -VOID -WriteNoFence64 ( - _Out_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ) - -{ - - __iso_volatile_store64(Destination, Value); - return; -} - -// end_wdm end_ntndis end_ntosp end_ntminiport end_ntoshvp -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -// begin_wdm begin_ntndis begin_ntosp begin_ntminiport begin_ntoshvp - -// -// Define coprocessor access intrinsics. Coprocessor 15 contains -// registers for the MMU, cache, TLB, feature bits, core -// identification and performance counters. -// - -// op0=2/3 encodings, use with _Read/WriteStatusReg -#define ARM64_SYSREG(op0, op1, crn, crm, op2) \ - ( ((op0 & 1) << 14) | \ - ((op1 & 7) << 11) | \ - ((crn & 15) << 7) | \ - ((crm & 15) << 3) | \ - ((op2 & 7) << 0) ) - -// op0=1 encodings, use with __sys -#define ARM64_SYSINSTR(op0, op1, crn, crm, op2) \ - ( ((op1 & 7) << 11) | \ - ((crn & 15) << 7) | \ - ((crm & 15) << 3) | \ - ((op2 & 7) << 0) ) - -#define ARM64_SYSREG_OP1(_Reg_) (((_Reg_) >> 11) & 7) -#define ARM64_SYSREG_CRN(_Reg_) (((_Reg_) >> 7) & 15) -#define ARM64_SYSREG_CRM(_Reg_) (((_Reg_) >> 3) & 15) -#define ARM64_SYSREG_OP2(_Reg_) ((_Reg_) & 7) - -#define ARM64_CNTVCT ARM64_SYSREG(3,3,14, 0,2) // Generic Timer counter register -#define ARM64_PMCCNTR_EL0 ARM64_SYSREG(3,3, 9,13,0) // Cycle Count Register [CP15_PMCCNTR] -#define ARM64_PMSELR_EL0 ARM64_SYSREG(3,3, 9,12,5) // Event Counter Selection Register [CP15_PMSELR] -#define ARM64_PMXEVCNTR_EL0 ARM64_SYSREG(3,3, 9,13,2) // Event Count Register [CP15_PMXEVCNTR] -#define ARM64_PMXEVCNTRn_EL0(n) ARM64_SYSREG(3,3,14, 8+((n)/8), (n)%8) // Direct Event Count Register [n/a] -#define ARM64_TPIDR_EL0 ARM64_SYSREG(3,3,13, 0,2) // Thread ID Register, User Read/Write [CP15_TPIDRURW] -#define ARM64_TPIDRRO_EL0 ARM64_SYSREG(3,3,13, 0,3) // Thread ID Register, User Read Only [CP15_TPIDRURO] -#define ARM64_TPIDR_EL1 ARM64_SYSREG(3,0,13, 0,4) // Thread ID Register, Privileged Only [CP15_TPIDRPRW] - - - -#pragma intrinsic(_WriteStatusReg) -#pragma intrinsic(_ReadStatusReg) - -// -// PreFetchCacheLine level defines. -// - -#define PF_TEMPORAL_LEVEL_1 0 -#define PF_TEMPORAL_LEVEL_2 1 -#define PF_TEMPORAL_LEVEL_3 2 -#define PF_NON_TEMPORAL_LEVEL_ALL 3 - -#if defined(_M_HYBRID_X86_ARM64) - -extern DWORD64 (*_os_wowa64_rdtsc) (VOID); - -#endif - -// -// Define function to read the value of the time stamp counter. -// - -#if defined(_M_HYBRID_X86_ARM64) - -DECLSPEC_GUARDNOCF - -#endif - -FORCEINLINE -DWORD64 -ReadTimeStampCounter( - VOID - ) -{ - -#if defined(_M_HYBRID_X86_ARM64) - - // - // Call into the emulator to return the same value as the x86 RDTSC - // instruction. - // - - return (*_os_wowa64_rdtsc)(); - -#else - - return (DWORD64)_ReadStatusReg(ARM64_PMCCNTR_EL0); - -#endif - -} - -FORCEINLINE -DWORD64 -ReadPMC ( - _In_ DWORD Counter - ) -{ - // ARM64_WORKITEM: These can be directly accessed, but - // given our usage, it that any benefit? We need to know - // the register index at compile time, though atomicity - // benefits would still be good if needed, even if we - // went with a big switch statement. - _WriteStatusReg(ARM64_PMSELR_EL0, Counter); - return (DWORD64)_ReadStatusReg(ARM64_PMXEVCNTR_EL0); -} - -// -// Define functions to capture the high 64-bits of a 128-bit multiply. -// - -#define MultiplyHigh __mulh -#define UnsignedMultiplyHigh __umulh - -#pragma intrinsic(__mulh) -#pragma intrinsic(__umulh) - -#endif // defined(_M_ARM64) || defined(_M_HYBRID_X86_ARM64) - -#endif // !defined(RC_INVOKED) && !defined(MIDL_PASS) - -#else // defined(_M_CEE_PURE) - -#include - -#endif // !defined(_M_CEE_PURE) - -#if defined(_M_CEE_PURE) -FORCEINLINE -VOID -YieldProcessor ( - VOID - ) -{ -} -#endif // defined(_M_CEE_PURE) - -// -// The following values specify the type of access in the first parameter -// of the exception record whan the exception code specifies an access -// violation. -// - -#define EXCEPTION_READ_FAULT 0 // exception caused by a read -#define EXCEPTION_WRITE_FAULT 1 // exception caused by a write -#define EXCEPTION_EXECUTE_FAULT 8 // exception caused by an instruction fetch - -// begin_wx86 - -// -// Define initial Cpsr/Fpscr value -// - -#define INITIAL_CPSR 0x10 -#define INITIAL_FPSCR 0 - -// end_wx86 -// begin_wx86 - -// -// The following flags control the contents of the CONTEXT structure. -// - -#if !defined(RC_INVOKED) - -#define CONTEXT_ARM64 0x00400000L - -// end_wx86 - -#define CONTEXT_ARM64_CONTROL (CONTEXT_ARM64 | 0x1L) -#define CONTEXT_ARM64_INTEGER (CONTEXT_ARM64 | 0x2L) -#define CONTEXT_ARM64_FLOATING_POINT (CONTEXT_ARM64 | 0x4L) -#define CONTEXT_ARM64_DEBUG_REGISTERS (CONTEXT_ARM64 | 0x8L) -#define CONTEXT_ARM64_X18 (CONTEXT_ARM64 | 0x10L) - -// -// CONTEXT_ARM64_X18 is not part of CONTEXT_ARM64_FULL because in NT user-mode -// threads, x18 contains a pointer to the TEB and should generally not be set -// without intending to. -// - -#define CONTEXT_ARM64_FULL (CONTEXT_ARM64_CONTROL | CONTEXT_ARM64_INTEGER | CONTEXT_ARM64_FLOATING_POINT) -#define CONTEXT_ARM64_ALL (CONTEXT_ARM64_CONTROL | CONTEXT_ARM64_INTEGER | CONTEXT_ARM64_FLOATING_POINT | CONTEXT_ARM64_DEBUG_REGISTERS | CONTEXT_ARM64_X18) - -#if defined(_ARM64_) - -#define CONTEXT_CONTROL CONTEXT_ARM64_CONTROL -#define CONTEXT_INTEGER CONTEXT_ARM64_INTEGER -#define CONTEXT_FLOATING_POINT CONTEXT_ARM64_FLOATING_POINT -#define CONTEXT_DEBUG_REGISTERS CONTEXT_ARM64_DEBUG_REGISTERS -#define CONTEXT_FULL CONTEXT_ARM64_FULL -#define CONTEXT_ALL CONTEXT_ARM64_ALL - -#define CONTEXT_EXCEPTION_ACTIVE 0x08000000L -#define CONTEXT_SERVICE_ACTIVE 0x10000000L -#define CONTEXT_EXCEPTION_REQUEST 0x40000000L -#define CONTEXT_EXCEPTION_REPORTING 0x80000000L - -#endif - -#if defined(_ARM64_) || defined(_CHPE_X86_ARM64_) || defined(_X86_) - -// -// This flag is set by the unwinder if it has unwound to a call -// site, and cleared whenever it unwinds through a trap frame. -// It is used by language-specific exception handlers to help -// differentiate exception scopes during dispatching. -// - -#define CONTEXT_UNWOUND_TO_CALL 0x20000000 -#define CONTEXT_RET_TO_GUEST 0x04000000 - -#endif - -// begin_wx86 - -#endif // !defined(RC_INVOKED) - -// begin_ntoshvp - -// -// Specify the number of breakpoints and watchpoints that the OS -// will track. Architecturally, ARM64 supports up to 16. In practice, -// however, almost no one implements more than 4 of each. -// - -#define ARM64_MAX_BREAKPOINTS 8 -#define ARM64_MAX_WATCHPOINTS 2 - -// -// Context Frame -// -// This frame has a several purposes: 1) it is used as an argument to -// NtContinue, 2) it is used to constuct a call frame for APC delivery, -// and 3) it is used in the user level thread creation routines. -// -// -// The flags field within this record controls the contents of a CONTEXT -// record. -// -// If the context record is used as an input parameter, then for each -// portion of the context record controlled by a flag whose value is -// set, it is assumed that that portion of the context record contains -// valid context. If the context record is being used to modify a threads -// context, then only that portion of the threads context is modified. -// -// If the context record is used as an output parameter to capture the -// context of a thread, then only those portions of the thread's context -// corresponding to set flags will be returned. -// -// CONTEXT_CONTROL specifies FP, LR, SP, PC, and CPSR -// -// CONTEXT_INTEGER specifies X0-X28 -// -// CONTEXT_FLOATING_POINT specifies Fpcr, Fpsr and Q0-Q31 / D0-D31 / S0-S31 -// -// CONTEXT_DEBUG_REGISTERS specifies up to 16 of DBGBVR, DBGBCR, DBGWVR, -// DBGWCR. -// - -typedef union _ARM64_NT_NEON128 { - struct { - ULONGLONG Low; - LONGLONG High; - } DUMMYSTRUCTNAME; - double D[2]; - float S[4]; - WORD H[8]; - BYTE B[16]; -} ARM64_NT_NEON128, *PARM64_NT_NEON128; - -#if defined(_ARM64_) - -typedef ARM64_NT_NEON128 NEON128, *PNEON128; - -#endif - -#if defined(_ARM64_) - -#pragma push_macro("_ARM64_NT_CONTEXT") -#undef _ARM64_NT_CONTEXT -#define _ARM64_NT_CONTEXT _CONTEXT - -#pragma push_macro("ARM64_NT_NEON128") -#undef ARM64_NT_NEON128 -#define ARM64_NT_NEON128 NEON128 - -#endif - -typedef struct DECLSPEC_ALIGN(16) DECLSPEC_NOINITALL _ARM64_NT_CONTEXT { - - // - // Control flags. - // - - /* +0x000 */ DWORD ContextFlags; - - // - // Integer registers - // - - /* +0x004 */ DWORD Cpsr; // NZVF + DAIF + CurrentEL + SPSel - /* +0x008 */ union { - struct { - DWORD64 X0; - DWORD64 X1; - DWORD64 X2; - DWORD64 X3; - DWORD64 X4; - DWORD64 X5; - DWORD64 X6; - DWORD64 X7; - DWORD64 X8; - DWORD64 X9; - DWORD64 X10; - DWORD64 X11; - DWORD64 X12; - DWORD64 X13; - DWORD64 X14; - DWORD64 X15; - DWORD64 X16; - DWORD64 X17; - DWORD64 X18; - DWORD64 X19; - DWORD64 X20; - DWORD64 X21; - DWORD64 X22; - DWORD64 X23; - DWORD64 X24; - DWORD64 X25; - DWORD64 X26; - DWORD64 X27; - DWORD64 X28; - /* +0x0f0 */ DWORD64 Fp; - /* +0x0f8 */ DWORD64 Lr; - } DUMMYSTRUCTNAME; - DWORD64 X[31]; - } DUMMYUNIONNAME; - /* +0x100 */ DWORD64 Sp; - /* +0x108 */ DWORD64 Pc; - - // - // Floating Point/NEON Registers - // - - /* +0x110 */ ARM64_NT_NEON128 V[32]; - /* +0x310 */ DWORD Fpcr; - /* +0x314 */ DWORD Fpsr; - - // - // Debug registers - // - - /* +0x318 */ DWORD Bcr[ARM64_MAX_BREAKPOINTS]; - /* +0x338 */ DWORD64 Bvr[ARM64_MAX_BREAKPOINTS]; - /* +0x378 */ DWORD Wcr[ARM64_MAX_WATCHPOINTS]; - /* +0x380 */ DWORD64 Wvr[ARM64_MAX_WATCHPOINTS]; - /* +0x390 */ - -} ARM64_NT_CONTEXT, *PARM64_NT_CONTEXT; - -#if defined(_ARM64_) - -#undef ARM64_NT_NEON128 -#pragma pop_macro("ARM64_NT_NEON128") - -#undef _ARM64_NT_CONTEXT -#pragma pop_macro("_ARM64_NT_CONTEXT") - -typedef ARM64_NT_CONTEXT CONTEXT, *PCONTEXT; - -#endif - -// end_ntoshvp -// end_wx86 - -// -// Select platform-specific definitions -// - -#if defined(_ARM64_) - -typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION; - -#endif - -typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY ARM64_RUNTIME_FUNCTION, *PARM64_RUNTIME_FUNCTION; -typedef SCOPE_TABLE_ARM64 SCOPE_TABLE, *PSCOPE_TABLE; - -// -// Define unwind information flags. -// - -#define UNW_FLAG_NHANDLER 0x0 /* any handler */ -#define UNW_FLAG_EHANDLER 0x1 /* filter handler */ -#define UNW_FLAG_UHANDLER 0x2 /* unwind handler */ - -// -// Define unwind history table structure. -// - -#define UNWIND_HISTORY_TABLE_SIZE 12 - -typedef struct _UNWIND_HISTORY_TABLE_ENTRY { - DWORD64 ImageBase; - PARM64_RUNTIME_FUNCTION FunctionEntry; -} UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY; - -typedef struct _UNWIND_HISTORY_TABLE { - DWORD Count; - BYTE LocalHint; - BYTE GlobalHint; - BYTE Search; - BYTE Once; - DWORD64 LowAddress; - DWORD64 HighAddress; - UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE]; -} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE; - -#if defined(_ARM64_) || defined(_CHPE_X86_ARM64_) - -#pragma push_macro("_DISPATCHER_CONTEXT_ARM64") -#undef _DISPATCHER_CONTEXT_ARM64 -#define _DISPATCHER_CONTEXT_ARM64 _DISPATCHER_CONTEXT - -#endif - -// -// Define exception dispatch context structure. -// - -typedef struct _DISPATCHER_CONTEXT_ARM64 { - ULONG_PTR ControlPc; - ULONG_PTR ImageBase; - PARM64_RUNTIME_FUNCTION FunctionEntry; - ULONG_PTR EstablisherFrame; - ULONG_PTR TargetPc; - PARM64_NT_CONTEXT ContextRecord; - PEXCEPTION_ROUTINE LanguageHandler; - PVOID HandlerData; - PUNWIND_HISTORY_TABLE HistoryTable; - DWORD ScopeIndex; - BOOLEAN ControlPcIsUnwound; - PBYTE NonVolatileRegisters; -} DISPATCHER_CONTEXT_ARM64, *PDISPATCHER_CONTEXT_ARM64; - -#if defined(_ARM64_) || defined(_CHPE_X86_ARM64_) - -#undef _DISPATCHER_CONTEXT_ARM64 -#pragma pop_macro("_DISPATCHER_CONTEXT_ARM64") - -typedef DISPATCHER_CONTEXT_ARM64 DISPATCHER_CONTEXT, *PDISPATCHER_CONTEXT; - -#endif - -#if defined(_ARM64_) || defined(_CHPE_X86_ARM64_) - -// -// Define exception filter and termination handler function types. -// N.B. These functions use a custom calling convention. -// - -struct _EXCEPTION_POINTERS; -typedef -LONG -(*PEXCEPTION_FILTER) ( - struct _EXCEPTION_POINTERS *ExceptionPointers, - DWORD64 EstablisherFrame - ); - -typedef -VOID -(*PTERMINATION_HANDLER) ( - BOOLEAN AbnormalTermination, - DWORD64 EstablisherFrame - ); - -#endif // defined(_ARM64_) || defined(_CHPE_X86_ARM64_) - -#if defined(_ARM64_) - -// -// Define dynamic function table entry. -// - -typedef -_Function_class_(GET_RUNTIME_FUNCTION_CALLBACK) -PARM64_RUNTIME_FUNCTION -GET_RUNTIME_FUNCTION_CALLBACK ( - _In_ DWORD64 ControlPc, - _In_opt_ PVOID Context - ); -typedef GET_RUNTIME_FUNCTION_CALLBACK *PGET_RUNTIME_FUNCTION_CALLBACK; - -typedef -_Function_class_(OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK) -DWORD -OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK ( - _In_ HANDLE Process, - _In_ PVOID TableAddress, - _Out_ PDWORD Entries, - _Out_ PARM64_RUNTIME_FUNCTION* Functions - ); -typedef OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK *POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK; - -#define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME \ - "OutOfProcessFunctionTableCallback" - -#endif // defined(_ARM64_) - - -// begin_ntoshvp - -#endif // defined(_ARM64_) || defined(_CHPE_X86_ARM64_) - -// end_ntoshvp - -// -// Nonvolatile context pointer record. -// - -typedef struct _KNONVOLATILE_CONTEXT_POINTERS_ARM64 { - - PDWORD64 X19; - PDWORD64 X20; - PDWORD64 X21; - PDWORD64 X22; - PDWORD64 X23; - PDWORD64 X24; - PDWORD64 X25; - PDWORD64 X26; - PDWORD64 X27; - PDWORD64 X28; - PDWORD64 Fp; - PDWORD64 Lr; - - PDWORD64 D8; - PDWORD64 D9; - PDWORD64 D10; - PDWORD64 D11; - PDWORD64 D12; - PDWORD64 D13; - PDWORD64 D14; - PDWORD64 D15; - -} KNONVOLATILE_CONTEXT_POINTERS_ARM64, *PKNONVOLATILE_CONTEXT_POINTERS_ARM64; - -#if defined(_ARM64_) - -typedef KNONVOLATILE_CONTEXT_POINTERS_ARM64 KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS; - -#endif - -#if defined(_CHPE_X86_ARM64_) - -// -// The following typedef works-around the fact that the dummy NV_C_P for x86 -// is defined in i386.h, which is incorrect because it doesn't have the -// correct scope. This will not be needed after fixing that: moving the -// definition to nti386_x.w with the same scoping as other architectures. -// - -typedef struct _KNONVOLATILE_CONTEXT_POINTERS *PKNONVOLATILE_CONTEXT_POINTERS; - -#endif - -// begin_wudfwdm - -#ifdef __cplusplus -extern "C" { -#endif - -// -// Assert exception. -// - -#if !defined(_DBGRAISEASSERTIONFAILURE_) && !defined(RC_INVOKED) && !defined(MIDL_PASS) - -#define _DBGRAISEASSERTIONFAILURE_ - -#if defined(_PREFAST_) - -__analysis_noreturn -FORCEINLINE -VOID -DbgRaiseAssertionFailure ( - VOID - ); - -#endif - -#if defined(_AMD64_) - -#if defined(_M_AMD64) - -VOID -__int2c ( - VOID - ); - -#pragma intrinsic(__int2c) - -#if !defined(_PREFAST_) - -#define DbgRaiseAssertionFailure() __int2c() - -#endif // !defined(_PREFAST_) - -#endif // defined(_M_AMD64) - -#elif defined(_X86_) && !defined(_M_HYBRID_X86_ARM64) - -#if defined(_M_IX86) && !defined(_M_HYBRID_X86_ARM64) - -#if _MSC_FULL_VER >= 140030222 - -VOID -__int2c ( - VOID - ); - -#pragma intrinsic(__int2c) - -#if !defined(_PREFAST_) - -#define DbgRaiseAssertionFailure() __int2c() - -#endif // !defined(_PREFAST_) - -#else // _MSC_FULL_VER >= 140030222 - -#pragma warning( push ) -#pragma warning( disable : 4793 ) - -#if !defined(_PREFAST_) - -__analysis_noreturn -FORCEINLINE -VOID -DbgRaiseAssertionFailure ( - VOID - ) - -{ - __asm int 0x2c -} - -#endif // !defined(_PREFAST_) - -#pragma warning( pop ) - -#endif // _MSC_FULL_VER >= 140030222 - -#endif // defined(_M_IX86) - -#elif defined(_IA64_) - -#if defined(_M_IA64) - -void -__break( - _In_ int StIIM - ); - -#pragma intrinsic (__break) - -#define BREAK_DEBUG_BASE 0x080000 -#define ASSERT_BREAKPOINT (BREAK_DEBUG_BASE+3) // Cause a STATUS_ASSERTION_FAILURE exception to be raised. - -#if !defined(_PREFAST_) - -#define DbgRaiseAssertionFailure() __break(ASSERT_BREAKPOINT) - -#endif // !defined(_PREFAST_) - -#endif // defined(_M_IA64) - -#elif defined(_ARM64_) || defined(_CHPE_X86_ARM64_) - -#if defined(_M_ARM64) || defined(_M_HYBRID_X86_ARM64) - -void -__break( - _In_ int Code - ); - -#pragma intrinsic (__break) - -#if !defined(_PREFAST_) - -#define DbgRaiseAssertionFailure() __break(0xf001) - -#endif // !defined(_PREFAST_) - -#endif // defined(_M_ARM64) || defined(_M_HYBRID_X86_ARM64) - -#elif defined(_ARM_) - -#if defined(_M_ARM) - -VOID -__emit( - const unsigned __int32 opcode - ); - -#pragma intrinsic(__emit) - -#if !defined(_PREFAST_) - -#define DbgRaiseAssertionFailure() __emit(0xdefc) // THUMB_ASSERT - -#endif // !defined(_PREFAST_) - -#endif // defined(_M_ARM) - -#endif // _AMD64_, _X86_, _IA64_, _ARM64_, _ARM_ -#endif // !defined(_DBGRAISEASSERTIONFAILURE_) && !defined(RC_INVOKED) && !defined(MIDL_PASS) - -#ifdef __cplusplus -} -#endif - -// begin_ntoshvp - -#ifdef _X86_ - -// -// Some intrinsics have a redundant __cdecl calling-convention specifier when -// not compiled with /clr:pure. -// - -#if defined(_M_CEE_PURE) - -#define CDECL_NON_WVMPURE - -#else - -#define CDECL_NON_WVMPURE __cdecl - -#endif - -// end_ntoshvp -// -// Disable these two pragmas that evaluate to "sti" "cli" on x86 so that driver -// writers to not leave them inadvertantly in their code. -// - -#if !defined(MIDL_PASS) -#if !defined(RC_INVOKED) - -#if _MSC_VER >= 1200 -#pragma warning(push) -#endif // _MSC_VER >= 1200 -//#pragma warning(disable:4164) // disable C4164 warning so that apps that - // build with /Od don't get weird errors ! - -#if _MSC_VER >= 1200 -#pragma warning( pop ) -#else -#pragma warning( default:4164 ) // reenable C4164 warning -#endif // _MSC_VER >= 1200 - -#endif // !defined(MIDL_PASS) -#endif // !defined(RC_INVOKED) - - - -// end_ntddk end_nthal -// begin_ntoshvp -#if defined(_M_IX86) && !defined(RC_INVOKED) && !defined(MIDL_PASS) - -#ifdef __cplusplus -extern "C" { -#endif - -#if !defined(_MANAGED) - -// -// Define bit test intrinsics. -// - -#define BitTest _bittest -#define BitTestAndComplement _bittestandcomplement -#define BitTestAndSet _bittestandset -#define BitTestAndReset _bittestandreset -#define InterlockedBitTestAndSet _interlockedbittestandset -#define InterlockedBitTestAndSetAcquire _interlockedbittestandset -#define InterlockedBitTestAndSetRelease _interlockedbittestandset -#define InterlockedBitTestAndSetNoFence _interlockedbittestandset -#define InterlockedBitTestAndReset _interlockedbittestandreset -#define InterlockedBitTestAndResetAcquire _interlockedbittestandreset -#define InterlockedBitTestAndResetRelease _interlockedbittestandreset -#define InterlockedBitTestAndResetNoFence _interlockedbittestandreset - -_Must_inspect_result_ -BOOLEAN -_bittest ( - _In_reads_bytes_((Offset/8)+1) LONG const *Base, - _In_range_(>=,0) LONG Offset - ); - -BOOLEAN -_bittestandcomplement ( - _Inout_updates_bytes_((Offset/8)+1) LONG *Base, - _In_range_(>=,0) LONG Offset - ); - -BOOLEAN -_bittestandset ( - _Inout_updates_bytes_((Offset/8)+1) LONG *Base, - _In_range_(>=,0) LONG Offset - ); - -BOOLEAN -_bittestandreset ( - _Inout_updates_bytes_((Offset/8)+1) LONG *Base, - _In_range_(>=,0) LONG Offset - ); - -BOOLEAN -_interlockedbittestandset ( - _Inout_updates_bytes_((Offset/8)+1) _Interlocked_operand_ LONG volatile *Base, - _In_range_(>=,0) LONG Offset - ); - -BOOLEAN -_interlockedbittestandreset ( - _Inout_updates_bytes_((Offset/8)+1) _Interlocked_operand_ LONG volatile *Base, - _In_range_(>=,0) LONG Offset - ); - -#pragma intrinsic(_bittest) -#pragma intrinsic(_bittestandcomplement) -#pragma intrinsic(_bittestandset) -#pragma intrinsic(_bittestandreset) -#pragma intrinsic(_interlockedbittestandset) -#pragma intrinsic(_interlockedbittestandreset) - -// -// Define bit scan intrinsics. -// - -#define BitScanForward _BitScanForward -#define BitScanReverse _BitScanReverse - -_Success_(return != 0) -BOOLEAN -_BitScanForward ( - _Out_ DWORD *Index, - _In_ DWORD Mask - ); - -_Success_(return != 0) -BOOLEAN -_BitScanReverse ( - _Out_ DWORD *Index, - _In_ DWORD Mask - ); - -#pragma intrinsic(_BitScanForward) -#pragma intrinsic(_BitScanReverse) - -_Success_(return != 0) -FORCEINLINE -BOOLEAN -_InlineBitScanForward64 ( - _Out_ DWORD *Index, - _In_ DWORD64 Mask - ) -{ - if (_BitScanForward(Index, (DWORD)Mask)) { - return 1; - } - - if (_BitScanForward(Index, (DWORD)(Mask >> 32))) { - *Index += 32; - return 1; - } - - return 0; -} - -#define BitScanForward64 _InlineBitScanForward64 - -_Success_(return != 0) -FORCEINLINE -BOOLEAN -_InlineBitScanReverse64 ( - _Out_ DWORD *Index, - _In_ DWORD64 Mask - ) -{ - if (_BitScanReverse(Index, (DWORD)(Mask >> 32))) { - *Index += 32; - return 1; - } - - if (_BitScanReverse(Index, (DWORD)Mask)) { - return 1; - } - - return 0; -} - -#define BitScanReverse64 _InlineBitScanReverse64 - -#endif // !defined(_MANAGED) - -// -// Interlocked intrinsic functions. -// - -#if !defined(_MANAGED) - -#define InterlockedIncrement16 _InterlockedIncrement16 -#define InterlockedIncrementAcquire16 _InterlockedIncrement16 -#define InterlockedIncrementRelease16 _InterlockedIncrement16 -#define InterlockedIncrementNoFence16 _InterlockedIncrement16 - -#define InterlockedDecrement16 _InterlockedDecrement16 -#define InterlockedDecrementAcquire16 _InterlockedDecrement16 -#define InterlockedDecrementRelease16 _InterlockedDecrement16 -#define InterlockedDecrementNoFence16 _InterlockedDecrement16 - -#define InterlockedCompareExchange16 _InterlockedCompareExchange16 -#define InterlockedCompareExchangeAcquire16 _InterlockedCompareExchange16 -#define InterlockedCompareExchangeRelease16 _InterlockedCompareExchange16 -#define InterlockedCompareExchangeNoFence16 _InterlockedCompareExchange16 - -#define InterlockedCompareExchange64 _InterlockedCompareExchange64 -#define InterlockedCompareExchangeAcquire64 _InterlockedCompareExchange64 -#define InterlockedCompareExchangeRelease64 _InterlockedCompareExchange64 -#define InterlockedCompareExchangeNoFence64 _InterlockedCompareExchange64 - -SHORT -InterlockedIncrement16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Addend - ); - -SHORT -InterlockedDecrement16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Addend - ); - -SHORT -InterlockedCompareExchange16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT ExChange, - _In_ SHORT Comperand - ); - -LONG64 -InterlockedCompareExchange64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 ExChange, - _In_ LONG64 Comperand - ); - -#pragma intrinsic(_InterlockedIncrement16) -#pragma intrinsic(_InterlockedDecrement16) -#pragma intrinsic(_InterlockedCompareExchange16) -#pragma intrinsic(_InterlockedCompareExchange64) - -#endif // !defined(_MANAGED) - -#define InterlockedAnd _InterlockedAnd -#define InterlockedAndAcquire _InterlockedAnd -#define InterlockedAndRelease _InterlockedAnd -#define InterlockedAndNoFence _InterlockedAnd - -#define InterlockedOr _InterlockedOr -#define InterlockedOrAcquire _InterlockedOr -#define InterlockedOrRelease _InterlockedOr -#define InterlockedOrNoFence _InterlockedOr - -#define InterlockedXor _InterlockedXor -#define InterlockedXorAcquire _InterlockedXor -#define InterlockedXorRelease _InterlockedXor -#define InterlockedXorNoFence _InterlockedXor - -#define InterlockedIncrement _InterlockedIncrement -#define InterlockedIncrementAcquire _InterlockedIncrement -#define InterlockedIncrementRelease _InterlockedIncrement -#define InterlockedIncrementNoFence _InterlockedIncrement - -#define InterlockedDecrement _InterlockedDecrement -#define InterlockedDecrementAcquire _InterlockedDecrement -#define InterlockedDecrementRelease _InterlockedDecrement -#define InterlockedDecrementNoFence _InterlockedDecrement - -#define InterlockedAdd _InlineInterlockedAdd -#define InterlockedAddAcquire _InlineInterlockedAdd -#define InterlockedAddRelease _InlineInterlockedAdd -#define InterlockedAddNoFence _InlineInterlockedAdd -#define InterlockedAddNoFence64 _InlineInterlockedAdd64 - -#define InterlockedExchange _InterlockedExchange -#define InterlockedExchangeAcquire _InterlockedExchange -#define InterlockedExchangeNoFence _InterlockedExchange - -#define InterlockedExchangeAdd _InterlockedExchangeAdd -#define InterlockedExchangeAddAcquire _InterlockedExchangeAdd -#define InterlockedExchangeAddRelease _InterlockedExchangeAdd -#define InterlockedExchangeAddNoFence _InterlockedExchangeAdd - -#define InterlockedCompareExchange _InterlockedCompareExchange -#define InterlockedCompareExchangeAcquire _InterlockedCompareExchange -#define InterlockedCompareExchangeRelease _InterlockedCompareExchange -#define InterlockedCompareExchangeNoFence _InterlockedCompareExchange - -#define InterlockedExchange16 _InterlockedExchange16 - -LONG -InterlockedAnd ( - _Inout_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ); - -LONG -InterlockedOr ( - _Inout_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ); - -LONG -InterlockedXor ( - _Inout_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ); - -LONG -CDECL_NON_WVMPURE -InterlockedIncrement ( - _Inout_ _Interlocked_operand_ LONG volatile *Addend - ); - -LONG -CDECL_NON_WVMPURE -InterlockedDecrement ( - _Inout_ _Interlocked_operand_ LONG volatile *Addend - ); - -LONG -__cdecl -InterlockedExchange ( - _Inout_ _Interlocked_operand_ LONG volatile *Target, - _In_ LONG Value - ); - -LONG -__cdecl -InterlockedExchangeAdd ( - _Inout_ _Interlocked_operand_ LONG volatile *Addend, - _In_ LONG Value - ); - -FORCEINLINE -LONG -_InlineInterlockedAdd ( - _Inout_ _Interlocked_operand_ LONG volatile *Addend, - _In_ LONG Value - ) - -{ - - return InterlockedExchangeAdd(Addend, Value) + Value; -} - -LONG -CDECL_NON_WVMPURE -InterlockedCompareExchange ( - _Inout_ _Interlocked_operand_ LONG volatile * Destination, - _In_ LONG ExChange, - _In_ LONG Comperand - ); - -#undef _InterlockedExchangePointer - -FORCEINLINE -_Ret_writes_(_Inexpressible_(Unknown)) -PVOID -_InlineInterlockedExchangePointer( - _Inout_ _At_(*Destination, - _Pre_writable_byte_size_(_Inexpressible_(Unknown)) - _Post_writable_byte_size_(_Inexpressible_(Unknown))) - _Interlocked_operand_ PVOID volatile * Destination, - _In_opt_ PVOID Value - ) -{ - return (PVOID)InterlockedExchange((LONG volatile *) Destination, - (LONG) Value); -} - -#define InterlockedExchangePointer _InlineInterlockedExchangePointer -#define InterlockedExchangePointerAcquire _InlineInterlockedExchangePointer -#define InterlockedExchangePointerRelease _InlineInterlockedExchangePointer -#define InterlockedExchangePointerNoFence _InlineInterlockedExchangePointer - -FORCEINLINE -_Ret_writes_(_Inexpressible_(Unknown)) -PVOID -_InlineInterlockedCompareExchangePointer ( - _Inout_ _At_(*Destination, - _Pre_writable_byte_size_(_Inexpressible_(Unknown)) - _Post_writable_byte_size_(_Inexpressible_(Unknown))) - _Interlocked_operand_ PVOID volatile * Destination, - _In_opt_ PVOID ExChange, - _In_opt_ PVOID Comperand - ) -{ - return (PVOID)InterlockedCompareExchange((LONG volatile *) Destination, - (LONG) ExChange, - (LONG) Comperand); -} - -#define InterlockedCompareExchangePointer \ - _InlineInterlockedCompareExchangePointer -#define InterlockedCompareExchangePointerAcquire \ - _InlineInterlockedCompareExchangePointer -#define InterlockedCompareExchangePointerRelease \ - _InlineInterlockedCompareExchangePointer -#define InterlockedCompareExchangePointerNoFence \ - _InlineInterlockedCompareExchangePointer - -#pragma intrinsic(_InterlockedAnd) -#pragma intrinsic(_InterlockedOr) -#pragma intrinsic(_InterlockedXor) -#pragma intrinsic(_InterlockedIncrement) -#pragma intrinsic(_InterlockedDecrement) -#pragma intrinsic(_InterlockedExchange) -#pragma intrinsic(_InterlockedExchangeAdd) -#pragma intrinsic(_InterlockedCompareExchange) - -#if !defined(_MANAGED) - -#if (_MSC_VER >= 1600) - -#define InterlockedExchange8 _InterlockedExchange8 -#define InterlockedExchange16 _InterlockedExchange16 - -CHAR -InterlockedExchange8 ( - _Inout_ _Interlocked_operand_ CHAR volatile *Target, - _In_ CHAR Value - ); - -SHORT -InterlockedExchange16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT ExChange - ); - -#pragma intrinsic(_InterlockedExchange8) -#pragma intrinsic(_InterlockedExchange16) - -#endif // _MSC_VER >= 1600 - -#if _MSC_FULL_VER >= 140041204 - -#define InterlockedExchangeAdd8 _InterlockedExchangeAdd8 -#define InterlockedAnd8 _InterlockedAnd8 -#define InterlockedOr8 _InterlockedOr8 -#define InterlockedXor8 _InterlockedXor8 -#define InterlockedAnd16 _InterlockedAnd16 -#define InterlockedOr16 _InterlockedOr16 -#define InterlockedXor16 _InterlockedXor16 -#define InterlockedCompareExchange16 _InterlockedCompareExchange16 -#define InterlockedIncrement16 _InterlockedIncrement16 -#define InterlockedDecrement16 _InterlockedDecrement16 - -char -InterlockedExchangeAdd8 ( - _Inout_ _Interlocked_operand_ char volatile * _Addend, - _In_ char _Value - ); - -char -InterlockedAnd8 ( - _Inout_ _Interlocked_operand_ char volatile *Destination, - _In_ char Value - ); - -char -InterlockedOr8 ( - _Inout_ _Interlocked_operand_ char volatile *Destination, - _In_ char Value - ); - -char -InterlockedXor8 ( - _Inout_ _Interlocked_operand_ char volatile *Destination, - _In_ char Value - ); - -SHORT -_InterlockedAnd16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ); - -SHORT -InterlockedXor16( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ); - -SHORT -_InterlockedCompareExchange16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT ExChange, - _In_ SHORT Comperand - ); - -SHORT -_InterlockedOr16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ); - -SHORT -_InterlockedIncrement16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination - ); - -SHORT -_InterlockedDecrement16 ( - _Inout_ _Interlocked_operand_ SHORT volatile *Destination - ); - -#pragma intrinsic (_InterlockedExchangeAdd8) -#pragma intrinsic (_InterlockedAnd8) -#pragma intrinsic (_InterlockedOr8) -#pragma intrinsic (_InterlockedXor8) -#pragma intrinsic (_InterlockedAnd16) -#pragma intrinsic (_InterlockedOr16) -#pragma intrinsic (_InterlockedXor16) -#pragma intrinsic (_InterlockedCompareExchange16) -#pragma intrinsic (_InterlockedIncrement16) -#pragma intrinsic (_InterlockedDecrement16) - -#endif /* _MSC_FULL_VER >= 140040816 */ - -// -// Define 64-bit operations in terms of InterlockedCompareExchange64 -// - -#define InterlockedCompareExchange64 _InterlockedCompareExchange64 - - -FORCEINLINE -LONG64 -_InlineInterlockedAnd64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ) -{ - LONG64 Old; - - do { - Old = *Destination; - } while (InterlockedCompareExchange64(Destination, - Old & Value, - Old) != Old); - - return Old; -} - -#define InterlockedAnd64 _InlineInterlockedAnd64 -#define InterlockedAnd64Acquire _InlineInterlockedAnd64 -#define InterlockedAnd64Release _InlineInterlockedAnd64 -#define InterlockedAnd64NoFence _InlineInterlockedAnd64 - -FORCEINLINE -LONG64 -_InlineInterlockedAdd64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Addend, - _In_ LONG64 Value - ) -{ - LONG64 Old; - - do { - Old = *Addend; - } while (InterlockedCompareExchange64(Addend, - Old + Value, - Old) != Old); - - return Old + Value; -} - -#define InterlockedAdd64 _InlineInterlockedAdd64 -#define InterlockedAddAcquire64 _InlineInterlockedAdd64 -#define InterlockedAddRelease64 _InlineInterlockedAdd64 -#define InterlockedAddNoFence64 _InlineInterlockedAdd64 - - -#endif // !defined(_MANAGED) - -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)a, b) -#define InterlockedExchangeAddSizeTAcquire(a, b) InterlockedExchangeAdd((LONG *)a, b) -#define InterlockedExchangeAddSizeTNoFence(a, b) InterlockedExchangeAdd((LONG *)a, b) -#define InterlockedIncrementSizeT(a) InterlockedIncrement((LONG *)a) -#define InterlockedIncrementSizeTNoFence(a) InterlockedIncrement((LONG *)a) -#define InterlockedDecrementSizeT(a) InterlockedDecrement((LONG *)a) -#define InterlockedDecrementSizeTNoFence(a) InterlockedDecrement((LONG *)a) - -// -// Definitons below -// - -LONG -_InterlockedXor ( - _Inout_ _Interlocked_operand_ LONG volatile *Target, - _In_ LONG Set - ); - -#pragma intrinsic(_InterlockedXor) - -#define InterlockedXor _InterlockedXor - -#if !defined(_MANAGED) - -LONGLONG -FORCEINLINE -_InlineInterlockedOr64 ( - _Inout_ _Interlocked_operand_ LONGLONG volatile *Destination, - _In_ LONGLONG Value - ) -{ - LONGLONG Old; - - do { - Old = *Destination; - } while (InterlockedCompareExchange64(Destination, - Old | Value, - Old) != Old); - - return Old; -} - -#define InterlockedOr64 _InlineInterlockedOr64 - -FORCEINLINE -LONG64 -_InlineInterlockedXor64 ( - _Inout_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ) -{ - LONG64 Old; - - do { - Old = *Destination; - } while (InterlockedCompareExchange64(Destination, - Old ^ Value, - Old) != Old); - - return Old; -} - -#define InterlockedXor64 _InlineInterlockedXor64 - -LONGLONG -FORCEINLINE -_InlineInterlockedIncrement64 ( - _Inout_ _Interlocked_operand_ LONGLONG volatile *Addend - ) -{ - LONGLONG Old; - - do { - Old = *Addend; - } while (InterlockedCompareExchange64(Addend, - Old + 1, - Old) != Old); - - return Old + 1; -} - -#define InterlockedIncrement64 _InlineInterlockedIncrement64 -#define InterlockedIncrementAcquire64 InterlockedIncrement64 -#define InterlockedIncrementRelease64 InterlockedIncrement64 -#define InterlockedIncrementNoFence64 InterlockedIncrement64 - -FORCEINLINE -LONGLONG -_InlineInterlockedDecrement64 ( - _Inout_ _Interlocked_operand_ LONGLONG volatile *Addend - ) -{ - LONGLONG Old; - - do { - Old = *Addend; - } while (InterlockedCompareExchange64(Addend, - Old - 1, - Old) != Old); - - return Old - 1; -} - -#define InterlockedDecrement64 _InlineInterlockedDecrement64 -#define InterlockedDecrementAcquire64 InterlockedDecrement64 -#define InterlockedDecrementRelease64 InterlockedDecrement64 -#define InterlockedDecrementNoFence64 InterlockedDecrement64 - -FORCEINLINE -LONGLONG -_InlineInterlockedExchange64 ( - _Inout_ _Interlocked_operand_ LONGLONG volatile *Target, - _In_ LONGLONG Value - ) -{ - LONGLONG Old; - - do { - Old = *Target; - } while (InterlockedCompareExchange64(Target, - Value, - Old) != Old); - - return Old; -} - -#define InterlockedExchange64 _InlineInterlockedExchange64 -#define InterlockedExchangeAcquire64 InterlockedExchange64 -#define InterlockedExchangeNoFence64 _InlineInterlockedExchange64 - - -FORCEINLINE -LONGLONG -_InlineInterlockedExchangeAdd64 ( - _Inout_ _Interlocked_operand_ LONGLONG volatile *Addend, - _In_ LONGLONG Value - ) -{ - LONGLONG Old; - - do { - Old = *Addend; - } while (InterlockedCompareExchange64(Addend, - Old + Value, - Old) != Old); - - return Old; -} - -#define InterlockedExchangeAdd64 _InlineInterlockedExchangeAdd64 -#define InterlockedExchangeAddNoFence64 _InlineInterlockedExchangeAdd64 - -// -// FS relative adds and increments. -// - -VOID -__incfsbyte ( - _In_ DWORD Offset - ); - -VOID -__addfsbyte ( - _In_ DWORD Offset, - _In_ BYTE Value - ); - -VOID -__incfsword ( - _In_ DWORD Offset - ); - -VOID -__addfsword ( - _In_ DWORD Offset, - _In_ WORD Value - ); - -VOID -__incfsdword ( - _In_ DWORD Offset - ); - -VOID -__addfsdword ( - _In_ DWORD Offset, - _In_ DWORD Value - ); - -#pragma intrinsic(__incfsbyte) -#pragma intrinsic(__addfsbyte) -#pragma intrinsic(__incfsword) -#pragma intrinsic(__addfsword) -#pragma intrinsic(__incfsdword) -#pragma intrinsic(__addfsdword) - -#endif // !defined(_MANAGED) - -#if !defined(_M_CEE_PURE) - -// end_ntoshvp - -#if _MSC_VER >= 1500 - -// -// Define extended CPUID intrinsic. -// - -#define CpuIdEx __cpuidex - -VOID -__cpuidex ( - int CPUInfo[4], - int Function, - int SubLeaf - ); - -#pragma intrinsic(__cpuidex) - -#endif - -// begin_ntoshvp - -// -// Define FS read/write intrinsics -// - -BYTE -__readfsbyte ( - _In_ DWORD Offset - ); - -WORD -__readfsword ( - _In_ DWORD Offset - ); - -DWORD -__readfsdword ( - _In_ DWORD Offset - ); - -VOID -__writefsbyte ( - _In_ DWORD Offset, - _In_ BYTE Data - ); - -VOID -__writefsword ( - _In_ DWORD Offset, - _In_ WORD Data - ); - -VOID -__writefsdword ( - _In_ DWORD Offset, - _In_ DWORD Data - ); - -#pragma intrinsic(__readfsbyte) -#pragma intrinsic(__readfsword) -#pragma intrinsic(__readfsdword) -#pragma intrinsic(__writefsbyte) -#pragma intrinsic(__writefsword) -#pragma intrinsic(__writefsdword) - -#endif // !defined(_M_CEE_PURE) - - -#if !defined(_MANAGED) && !defined(_M_HYBRID_X86_ARM64) -VOID -_mm_pause ( - VOID - ); - -#pragma intrinsic(_mm_pause) - -#define YieldProcessor _mm_pause - -#endif // !defined(_MANAGED) && !defined(_M_HYBRID_X86_ARM64) - -#ifdef __cplusplus -} -#endif - -#endif /* !defined(MIDL_PASS) || defined(_M_IX86) */ - -// end_ntoshvp -// begin_ntoshvp -#if !defined(MIDL_PASS) && defined(_M_IX86) - -#if !defined(_M_CEE_PURE) && !defined(_M_HYBRID_X86_ARM64) - -#pragma prefast(push) -#pragma warning(push) -#pragma prefast(disable: 6001 28113, "The barrier variable is accessed only to create a side effect.") -#pragma warning(disable: 4793) -FORCEINLINE -VOID -MemoryBarrier ( - VOID - ) -{ - LONG Barrier; - - InterlockedOr(&Barrier, 0); - return; -} - -#pragma warning(pop) -#pragma prefast(pop) - -#endif /* !_M_CEE_PURE || !_M_HYBRID_X86_ARM64*/ - -#if !defined(_M_HYBRID_X86_ARM64) - -// -// Define constants for use with _mm_prefetch. -// - -#define _MM_HINT_T0 1 -#define _MM_HINT_T1 2 -#define _MM_HINT_T2 3 -#define _MM_HINT_NTA 0 - -VOID -_mm_prefetch ( - _In_ CHAR CONST *a, - _In_ int sel - ); - -#pragma intrinsic(_mm_prefetch) - -// -// PreFetchCacheLine level defines. -// - -#define PF_TEMPORAL_LEVEL_1 _MM_HINT_T0 -#define PF_TEMPORAL_LEVEL_2 _MM_HINT_T1 -#define PF_TEMPORAL_LEVEL_3 _MM_HINT_T2 -#define PF_NON_TEMPORAL_LEVEL_ALL _MM_HINT_NTA - -#define PreFetchCacheLine(l, a) _mm_prefetch((CHAR CONST *) a, l) -#define PrefetchForWrite(p) -#define ReadForWriteAccess(p) (*(p)) - -#if !defined(_MANAGED) - -// -// Define function to read the value of a performance counter. -// - -#define ReadPMC __readpmc - -DWORD64 -__readpmc ( - _In_ DWORD Counter - ); - -#pragma intrinsic(__readpmc) - -// -// Define function to read the value of the time stamp counter -// - -#define ReadTimeStampCounter() __rdtsc() - -DWORD64 -__rdtsc ( - VOID - ); - -#pragma intrinsic(__rdtsc) - -#endif // !defined(_MANAGED) - -#endif // !defined(_M_HYBRID_X86_ARM64) - -// end_ntoshvp -// end_ntddk - -#if !defined(_MANAGED) - -__inline PVOID GetFiberData( void ) { return *(PVOID *) (ULONG_PTR) __readfsdword (0x10);} -__inline PVOID GetCurrentFiber( void ) { return (PVOID) (ULONG_PTR) __readfsdword (0x10);} - -#endif // !defined(_MANAGED) - -// begin_ntddk -// begin_ntoshvp -#endif // !defined(MIDL_PASS) && defined(_M_IX86) -// end_ntoshvp -// end_ntddk - -// -// The following values specify the type of failing access when the status is -// STATUS_ACCESS_VIOLATION and the first parameter in the execpetion record. -// - -#define EXCEPTION_READ_FAULT 0 // Access violation was caused by a read -#define EXCEPTION_WRITE_FAULT 1 // Access violation was caused by a write -#define EXCEPTION_EXECUTE_FAULT 8 // Access violation was caused by an instruction fetch - -// begin_wx86 -// begin_ntddk -// begin_ntoshvp - -// -// Define the size of the 80387 save area, which is in the context frame. -// - -#define SIZE_OF_80387_REGISTERS 80 - -// -// The following flags control the contents of the CONTEXT structure. -// - -#if !defined(RC_INVOKED) - -#define CONTEXT_i386 0x00010000L // this assumes that i386 and -#define CONTEXT_i486 0x00010000L // i486 have identical context records - -// end_wx86 - -#define CONTEXT_CONTROL (CONTEXT_i386 | 0x00000001L) // SS:SP, CS:IP, FLAGS, BP -#define CONTEXT_INTEGER (CONTEXT_i386 | 0x00000002L) // AX, BX, CX, DX, SI, DI -#define CONTEXT_SEGMENTS (CONTEXT_i386 | 0x00000004L) // DS, ES, FS, GS -#define CONTEXT_FLOATING_POINT (CONTEXT_i386 | 0x00000008L) // 387 state -#define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x00000010L) // DB 0-3,6,7 -#define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386 | 0x00000020L) // cpu specific extensions - -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER |\ - CONTEXT_SEGMENTS) - -#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | \ - CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS | \ - CONTEXT_EXTENDED_REGISTERS) - -#define CONTEXT_XSTATE (CONTEXT_i386 | 0x00000040L) - -#define CONTEXT_EXCEPTION_ACTIVE 0x08000000L -#define CONTEXT_SERVICE_ACTIVE 0x10000000L -#define CONTEXT_EXCEPTION_REQUEST 0x40000000L -#define CONTEXT_EXCEPTION_REPORTING 0x80000000L - -// begin_wx86 - -#endif // !defined(RC_INVOKED) - -typedef struct _FLOATING_SAVE_AREA { - DWORD ControlWord; - DWORD StatusWord; - DWORD TagWord; - DWORD ErrorOffset; - DWORD ErrorSelector; - DWORD DataOffset; - DWORD DataSelector; - BYTE RegisterArea[SIZE_OF_80387_REGISTERS]; - DWORD Spare0; -} FLOATING_SAVE_AREA; - -typedef FLOATING_SAVE_AREA *PFLOATING_SAVE_AREA; - - -// end_ntddk -// begin_wdm begin_ntosp - -#define MAXIMUM_SUPPORTED_EXTENSION 512 - -#if !defined(__midl) && !defined(MIDL_PASS) - -C_ASSERT(sizeof(XSAVE_FORMAT) == MAXIMUM_SUPPORTED_EXTENSION); - -#endif - -// end_wdm end_ntosp -// begin_ntddk - -#include "pshpack4.h" - -// -// Context Frame -// -// This frame has a several purposes: 1) it is used as an argument to -// NtContinue, 2) is is used to constuct a call frame for APC delivery, -// and 3) it is used in the user level thread creation routines. -// -// The layout of the record conforms to a standard call frame. -// - -typedef struct DECLSPEC_NOINITALL _CONTEXT { - - // - // The flags values within this flag control the contents of - // a CONTEXT record. - // - // If the context record is used as an input parameter, then - // for each portion of the context record controlled by a flag - // whose value is set, it is assumed that that portion of the - // context record contains valid context. If the context record - // is being used to modify a threads context, then only that - // portion of the threads context will be modified. - // - // If the context record is used as an IN OUT parameter to capture - // the context of a thread, then only those portions of the thread's - // context corresponding to set flags will be returned. - // - // The context record is never used as an OUT only parameter. - // - - DWORD ContextFlags; - - // - // This section is specified/returned if CONTEXT_DEBUG_REGISTERS is - // set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT - // included in CONTEXT_FULL. - // - - DWORD Dr0; - DWORD Dr1; - DWORD Dr2; - DWORD Dr3; - DWORD Dr6; - DWORD Dr7; - - // - // This section is specified/returned if the - // ContextFlags word contians the flag CONTEXT_FLOATING_POINT. - // - - FLOATING_SAVE_AREA FloatSave; - - // - // This section is specified/returned if the - // ContextFlags word contians the flag CONTEXT_SEGMENTS. - // - - DWORD SegGs; - DWORD SegFs; - DWORD SegEs; - DWORD SegDs; - - // - // This section is specified/returned if the - // ContextFlags word contians the flag CONTEXT_INTEGER. - // - - DWORD Edi; - DWORD Esi; - DWORD Ebx; - DWORD Edx; - DWORD Ecx; - DWORD Eax; - - // - // This section is specified/returned if the - // ContextFlags word contians the flag CONTEXT_CONTROL. - // - - DWORD Ebp; - DWORD Eip; - DWORD SegCs; // MUST BE SANITIZED - DWORD EFlags; // MUST BE SANITIZED - DWORD Esp; - DWORD SegSs; - - // - // This section is specified/returned if the ContextFlags word - // contains the flag CONTEXT_EXTENDED_REGISTERS. - // The format and contexts are processor specific - // - - BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION]; - -} CONTEXT; - -typedef CONTEXT *PCONTEXT; - -#include "poppack.h" - -// end_ntoshvp -// begin_ntminiport -#endif //_X86_ - - -#ifndef _LDT_ENTRY_DEFINED -#define _LDT_ENTRY_DEFINED - -typedef struct _LDT_ENTRY { - WORD LimitLow; - WORD BaseLow; - union { - struct { - BYTE BaseMid; - BYTE Flags1; // Declare as bytes to avoid alignment - BYTE Flags2; // Problems. - BYTE BaseHi; - } Bytes; - struct { - DWORD BaseMid : 8; - DWORD Type : 5; - DWORD Dpl : 2; - DWORD Pres : 1; - DWORD LimitHi : 4; - DWORD Sys : 1; - DWORD Reserved_0 : 1; - DWORD Default_Big : 1; - DWORD Granularity : 1; - DWORD BaseHi : 8; - } Bits; - } HighWord; -} LDT_ENTRY, *PLDT_ENTRY; - -#endif - -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -// begin_wdm begin_ntminiport - -#if !defined(RC_INVOKED) && !defined(MIDL_PASS) -#if ((defined(_M_AMD64) || defined(_M_IX86)) && !defined(_M_HYBRID_X86_ARM64)) || defined(_M_CEE_PURE) - -#ifdef __cplusplus -extern "C" { -#endif - -FORCEINLINE -CHAR -ReadAcquire8 ( - _In_ _Interlocked_operand_ CHAR const volatile *Source - ) - -{ - - CHAR Value; - - Value = *Source; - return Value; -} - -FORCEINLINE -CHAR -ReadNoFence8 ( - _In_ _Interlocked_operand_ CHAR const volatile *Source - ) - -{ - - CHAR Value; - - Value = *Source; - return Value; -} - -FORCEINLINE -VOID -WriteRelease8 ( - _Out_ _Interlocked_operand_ CHAR volatile *Destination, - _In_ CHAR Value - ) - -{ - - *Destination = Value; - return; -} - -FORCEINLINE -VOID -WriteNoFence8 ( - _Out_ _Interlocked_operand_ CHAR volatile *Destination, - _In_ CHAR Value - ) - -{ - - *Destination = Value; - return; -} - -FORCEINLINE -SHORT -ReadAcquire16 ( - _In_ _Interlocked_operand_ SHORT const volatile *Source - ) - -{ - - SHORT Value; - - Value = *Source; - return Value; -} - -FORCEINLINE -SHORT -ReadNoFence16 ( - _In_ _Interlocked_operand_ SHORT const volatile *Source - ) - -{ - - SHORT Value; - - Value = *Source; - return Value; -} - -FORCEINLINE -VOID -WriteRelease16 ( - _Out_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ) - -{ - - *Destination = Value; - return; -} - -FORCEINLINE -VOID -WriteNoFence16 ( - _Out_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ) - -{ - - *Destination = Value; - return; -} - -FORCEINLINE -LONG -ReadAcquire ( - _In_ _Interlocked_operand_ LONG const volatile *Source - ) - -{ - - LONG Value; - - Value = *Source; - return Value; -} - -CFORCEINLINE -LONG -ReadNoFence ( - _In_ _Interlocked_operand_ LONG const volatile *Source - ) - -{ - - LONG Value; - - Value = *Source; - return Value; -} - -CFORCEINLINE -VOID -WriteRelease ( - _Out_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ) - -{ - - *Destination = Value; - return; -} - -FORCEINLINE -VOID -WriteNoFence ( - _Out_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ) - -{ - - *Destination = Value; - return; -} - -FORCEINLINE -LONG64 -ReadAcquire64 ( - _In_ _Interlocked_operand_ LONG64 const volatile *Source - ) - -{ - - LONG64 Value; - - Value = *Source; - return Value; -} - -CFORCEINLINE -LONG64 -ReadNoFence64 ( - _In_ _Interlocked_operand_ LONG64 const volatile *Source - ) - -{ - - LONG64 Value; - - Value = *Source; - return Value; -} - -CFORCEINLINE -VOID -WriteRelease64 ( - _Out_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ) - -{ - - *Destination = Value; - return; -} - -FORCEINLINE -VOID -WriteNoFence64 ( - _Out_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ) - -{ - - *Destination = Value; - return; -} - -#ifdef __cplusplus -} -#endif - -#endif // defined(_M_AMD64) || defined(_M_IX86) || defined(_M_CEE_PURE) - -// -// Define "raw" operations which have no ordering or atomicity semantics. -// - -FORCEINLINE -CHAR -ReadRaw8 ( - _In_ _Interlocked_operand_ CHAR const volatile *Source - ) - -{ - - CHAR Value; - - Value = *(CHAR *)Source; - return Value; -} - -FORCEINLINE -VOID -WriteRaw8 ( - _Out_ _Interlocked_operand_ CHAR volatile *Destination, - _In_ CHAR Value - ) - -{ - - *(CHAR *)Destination = Value; - return; -} - -FORCEINLINE -SHORT -ReadRaw16 ( - _In_ _Interlocked_operand_ SHORT const volatile *Source - ) - -{ - - SHORT Value; - - Value = *(SHORT *)Source; - return Value; -} - -FORCEINLINE -VOID -WriteRaw16 ( - _Out_ _Interlocked_operand_ SHORT volatile *Destination, - _In_ SHORT Value - ) - -{ - - *(SHORT *)Destination = Value; - return; -} - -FORCEINLINE -LONG -ReadRaw ( - _In_ _Interlocked_operand_ LONG const volatile *Source - ) - -{ - - LONG Value; - - Value = *(LONG *)Source; - return Value; -} - -CFORCEINLINE -VOID -WriteRaw ( - _Out_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value - ) - -{ - - *(LONG *)Destination = Value; - return; -} - -FORCEINLINE -LONG64 -ReadRaw64 ( - _In_ _Interlocked_operand_ LONG64 const volatile *Source - ) - -{ - - LONG64 Value; - - Value = *(LONG64 *)Source; - return Value; -} - -FORCEINLINE -VOID -WriteRaw64 ( - _Out_ _Interlocked_operand_ LONG64 volatile *Destination, - _In_ LONG64 Value - ) - -{ - - *(LONG64 *)Destination = Value; - return; -} - -// -// Define explicit read and write operations for derived types. -// - -FORCEINLINE -BYTE -ReadUCharAcquire ( - _In_ _Interlocked_operand_ BYTE const volatile *Source - ) - -{ - - return (BYTE )ReadAcquire8((PCHAR)Source); -} - -FORCEINLINE -BYTE -ReadUCharNoFence ( - _In_ _Interlocked_operand_ BYTE const volatile *Source - ) - -{ - - return (BYTE )ReadNoFence8((PCHAR)Source); -} - -FORCEINLINE -BYTE -ReadBooleanAcquire ( - _In_ _Interlocked_operand_ BOOLEAN const volatile *Source - ) - -{ - - return (BOOLEAN)ReadAcquire8((PCHAR)Source); -} - -FORCEINLINE -BYTE -ReadBooleanNoFence ( - _In_ _Interlocked_operand_ BOOLEAN const volatile *Source - ) - -{ - - return (BOOLEAN)ReadNoFence8((PCHAR)Source); -} - -FORCEINLINE -BYTE -ReadUCharRaw ( - _In_ _Interlocked_operand_ BYTE const volatile *Source - ) - -{ - - return (BYTE )ReadRaw8((PCHAR)Source); -} - -FORCEINLINE -VOID -WriteUCharRelease ( - _Out_ _Interlocked_operand_ BYTE volatile *Destination, - _In_ BYTE Value - ) - -{ - - WriteRelease8((PCHAR)Destination, (CHAR)Value); - return; -} - -FORCEINLINE -VOID -WriteUCharNoFence ( - _Out_ _Interlocked_operand_ BYTE volatile *Destination, - _In_ BYTE Value - ) - -{ - - WriteNoFence8((PCHAR)Destination, (CHAR)Value); - return; -} - -FORCEINLINE -VOID -WriteBooleanRelease ( - _Out_ _Interlocked_operand_ BOOLEAN volatile *Destination, - _In_ BOOLEAN Value - ) - -{ - - WriteRelease8((PCHAR)Destination, (CHAR)Value); - return; -} - -FORCEINLINE -VOID -WriteBooleanNoFence ( - _Out_ _Interlocked_operand_ BOOLEAN volatile *Destination, - _In_ BOOLEAN Value - ) - -{ - - WriteNoFence8((PCHAR)Destination, (CHAR)Value); - return; -} - -FORCEINLINE -VOID -WriteUCharRaw ( - _Out_ _Interlocked_operand_ BYTE volatile *Destination, - _In_ BYTE Value - ) - -{ - - WriteRaw8((PCHAR)Destination, (CHAR)Value); - return; -} - -FORCEINLINE -WORD -ReadUShortAcquire ( - _In_ _Interlocked_operand_ WORD const volatile *Source - ) - -{ - - return (WORD )ReadAcquire16((PSHORT)Source); -} - -FORCEINLINE -WORD -ReadUShortNoFence ( - _In_ _Interlocked_operand_ WORD const volatile *Source - ) - -{ - - return (WORD )ReadNoFence16((PSHORT)Source); -} - -FORCEINLINE -WORD -ReadUShortRaw ( - _In_ _Interlocked_operand_ WORD const volatile *Source - ) - -{ - - return (WORD )ReadRaw16((PSHORT)Source); -} - -FORCEINLINE -VOID -WriteUShortRelease ( - _Out_ _Interlocked_operand_ WORD volatile *Destination, - _In_ WORD Value - ) - -{ - - WriteRelease16((PSHORT)Destination, (SHORT)Value); - return; -} - -FORCEINLINE -VOID -WriteUShortNoFence ( - _Out_ _Interlocked_operand_ WORD volatile *Destination, - _In_ WORD Value - ) - -{ - - WriteNoFence16((PSHORT)Destination, (SHORT)Value); - return; -} - -FORCEINLINE -VOID -WriteUShortRaw ( - _Out_ _Interlocked_operand_ WORD volatile *Destination, - _In_ WORD Value - ) - -{ - - WriteRaw16((PSHORT)Destination, (SHORT)Value); - return; -} - -FORCEINLINE -DWORD -ReadULongAcquire ( - _In_ _Interlocked_operand_ DWORD const volatile *Source - ) - -{ - - return (DWORD)ReadAcquire((PLONG)Source); -} - -FORCEINLINE -DWORD -ReadULongNoFence ( - _In_ _Interlocked_operand_ DWORD const volatile *Source - ) - -{ - - return (DWORD)ReadNoFence((PLONG)Source); -} - -FORCEINLINE -DWORD -ReadULongRaw ( - _In_ _Interlocked_operand_ DWORD const volatile *Source - ) - -{ - - return (DWORD)ReadRaw((PLONG)Source); -} - -CFORCEINLINE -VOID -WriteULongRelease ( - _Out_ _Interlocked_operand_ DWORD volatile *Destination, - _In_ DWORD Value - ) - -{ - - WriteRelease((PLONG)Destination, (LONG)Value); - return; -} - -FORCEINLINE -VOID -WriteULongNoFence ( - _Out_ _Interlocked_operand_ DWORD volatile *Destination, - _In_ DWORD Value - ) - -{ - - WriteNoFence((PLONG)Destination, (LONG)Value); - return; -} - -FORCEINLINE -VOID -WriteULongRaw ( - _Out_ _Interlocked_operand_ DWORD volatile *Destination, - _In_ DWORD Value - ) - -{ - - WriteRaw((PLONG)Destination, (LONG)Value); - return; -} - -FORCEINLINE -DWORD64 -ReadULong64Acquire ( - _In_ _Interlocked_operand_ DWORD64 const volatile *Source - ) - -{ - - return (DWORD64)ReadAcquire64((PLONG64)Source); -} - -FORCEINLINE -DWORD64 -ReadULong64NoFence ( - _In_ _Interlocked_operand_ DWORD64 const volatile *Source - ) - -{ - - return (DWORD64)ReadNoFence64((PLONG64)Source); -} - -FORCEINLINE -DWORD64 -ReadULong64Raw ( - _In_ _Interlocked_operand_ DWORD64 const volatile *Source - ) - -{ - - return (DWORD64)ReadRaw64((PLONG64)Source); -} - -CFORCEINLINE -VOID -WriteULong64Release ( - _Out_ _Interlocked_operand_ DWORD64 volatile *Destination, - _In_ DWORD64 Value - ) - -{ - - WriteRelease64((PLONG64)Destination, (LONG64)Value); - return; -} - -FORCEINLINE -VOID -WriteULong64NoFence ( - _Out_ _Interlocked_operand_ DWORD64 volatile *Destination, - _In_ DWORD64 Value - ) - -{ - - WriteNoFence64((PLONG64)Destination, (LONG64)Value); - return; -} - -FORCEINLINE -VOID -WriteULong64Raw ( - _Out_ _Interlocked_operand_ DWORD64 volatile *Destination, - _In_ DWORD64 Value - ) - -{ - - WriteRaw64((PLONG64)Destination, (LONG64)Value); - return; -} - -#define ReadSizeTAcquire ReadULongPtrAcquire - -#define ReadSizeTNoFence ReadULongPtrNoFence - -#define ReadSizeTRaw ReadULongPtrRaw - -#define WriteSizeTRelease WriteULongPtrRelease - -#define WriteSizeTNoFence WriteULongPtrNoFence - -#define WriteSizeTRaw WriteULongPtrRaw - -#if !defined(_WIN64) - -FORCEINLINE -PVOID -ReadPointerAcquire ( - _In_ _Interlocked_operand_ PVOID const volatile *Source - ) - -{ - - return (PVOID)ReadAcquire((PLONG)Source); -} - -CFORCEINLINE -PVOID -ReadPointerNoFence ( - _In_ _Interlocked_operand_ PVOID const volatile *Source - ) - -{ - - return (PVOID)ReadNoFence((PLONG)Source); -} - -FORCEINLINE -PVOID -ReadPointerRaw ( - _In_ _Interlocked_operand_ PVOID const volatile *Source - ) - -{ - - return (PVOID)ReadRaw((PLONG)Source); -} - -CFORCEINLINE -VOID -WritePointerRelease ( - _Out_ _Interlocked_operand_ PVOID volatile *Destination, - _In_ PVOID Value - ) - -{ - - WriteRelease((PLONG)Destination, (LONG)Value); - return; -} - -FORCEINLINE -VOID -WritePointerNoFence ( - _Out_ _Interlocked_operand_ PVOID volatile *Destination, - _In_opt_ PVOID Value - ) - -{ - - WriteNoFence((PLONG)Destination, (LONG)Value); - return; -} - -FORCEINLINE -VOID -WritePointerRaw ( - _Out_ _Interlocked_operand_ PVOID volatile *Destination, - _In_opt_ PVOID Value - ) - -{ - - WriteRaw((PLONG)Destination, (LONG)Value); - return; -} - -#define ReadLongPtrAcquire ReadAcquire - -#define ReadLongPtrNoFence ReadNoFence - -#define ReadLongPtrRaw ReadRaw - -#define WriteLongPtrRelease WriteRelease - -#define WriteLongPtrNoFence WriteNoFence - -#define WriteLongPtrRaw WriteRaw - -#define ReadULongPtrAcquire ReadULongAcquire - -#define ReadULongPtrNoFence ReadULongNoFence - -#define ReadULongPtrRaw ReadULongRaw - -#define WriteULongPtrRelease WriteULongRelease - -#define WriteULongPtrNoFence WriteULongNoFence - -#define WriteULongPtrRaw WriteULongRaw - -#else // !defined(_WIN64) - -FORCEINLINE -PVOID -ReadPointerAcquire ( - _In_ _Interlocked_operand_ PVOID const volatile *Source - ) - -{ - - return (PVOID)ReadAcquire64((PLONG64)Source); -} - -CFORCEINLINE -PVOID -ReadPointerNoFence ( - _In_ _Interlocked_operand_ PVOID const volatile *Source - ) - -{ - - return (PVOID)ReadNoFence64((PLONG64)Source); -} - -FORCEINLINE -PVOID -ReadPointerRaw ( - _In_ _Interlocked_operand_ PVOID const volatile *Source - ) - -{ - - return (PVOID)ReadRaw64((PLONG64)Source); -} - -FORCEINLINE -VOID -WritePointerRelease ( - _Out_ _Interlocked_operand_ PVOID volatile *Destination, - _In_ PVOID Value - ) - -{ - - WriteRelease64((PLONG64)Destination, (LONG64)Value); - return; -} - -FORCEINLINE -VOID -WritePointerNoFence ( - _Out_ _Interlocked_operand_ PVOID volatile *Destination, - _In_ PVOID Value - ) - -{ - - WriteNoFence64((PLONG64)Destination, (LONG64)Value); - return; -} - -FORCEINLINE -VOID -WritePointerRaw ( - _Out_ _Interlocked_operand_ PVOID volatile *Destination, - _In_ PVOID Value - ) - -{ - - WriteRaw64((PLONG64)Destination, (LONG64)Value); - return; -} - -#define ReadLongPtrAcquire ReadAcquire64 - -#define ReadLongPtrNoFence ReadNoFence64 - -#define ReadLongPtrRaw ReadRaw64 - -#define WriteLongPtrRelease WriteRelease64 - -#define WriteLongPtrNoFence WriteNoFence64 - -#define WriteLongPtrRaw WriteRaw64 - -#define ReadULongPtrAcquire ReadULong64Acquire - -#define ReadULongPtrNoFence ReadULong64NoFence - -#define ReadULongPtrRaw ReadULong64Raw - -#define WriteULongPtrRelease WriteULong64Release - -#define WriteULongPtrNoFence WriteULong64NoFence - -#define WriteULongPtrRaw WriteULong64Raw - -#endif // !defined(_WIN64) - -#endif // !defined(RC_INVOKED) && !defined(MIDL_PASS) - -// end_ntddk end_wdm end_ntminiport -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -#if !defined(RC_INVOKED) - -#define WOW64_CONTEXT_i386 0x00010000 // this assumes that i386 and -#define WOW64_CONTEXT_i486 0x00010000 // i486 have identical context records - -#define WOW64_CONTEXT_CONTROL (WOW64_CONTEXT_i386 | 0x00000001L) // SS:SP, CS:IP, FLAGS, BP -#define WOW64_CONTEXT_INTEGER (WOW64_CONTEXT_i386 | 0x00000002L) // AX, BX, CX, DX, SI, DI -#define WOW64_CONTEXT_SEGMENTS (WOW64_CONTEXT_i386 | 0x00000004L) // DS, ES, FS, GS -#define WOW64_CONTEXT_FLOATING_POINT (WOW64_CONTEXT_i386 | 0x00000008L) // 387 state -#define WOW64_CONTEXT_DEBUG_REGISTERS (WOW64_CONTEXT_i386 | 0x00000010L) // DB 0-3,6,7 -#define WOW64_CONTEXT_EXTENDED_REGISTERS (WOW64_CONTEXT_i386 | 0x00000020L) // cpu specific extensions - -#define WOW64_CONTEXT_FULL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | WOW64_CONTEXT_SEGMENTS) - -#define WOW64_CONTEXT_ALL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | WOW64_CONTEXT_SEGMENTS | \ - WOW64_CONTEXT_FLOATING_POINT | WOW64_CONTEXT_DEBUG_REGISTERS | \ - WOW64_CONTEXT_EXTENDED_REGISTERS) - -#define WOW64_CONTEXT_XSTATE (WOW64_CONTEXT_i386 | 0x00000040L) - -#define WOW64_CONTEXT_EXCEPTION_ACTIVE 0x08000000 -#define WOW64_CONTEXT_SERVICE_ACTIVE 0x10000000 -#define WOW64_CONTEXT_EXCEPTION_REQUEST 0x40000000 -#define WOW64_CONTEXT_EXCEPTION_REPORTING 0x80000000 - -#endif // !defined(RC_INVOKED) - -// -// Define the size of the 80387 save area, which is in the context frame. -// - -#define WOW64_SIZE_OF_80387_REGISTERS 80 - -#define WOW64_MAXIMUM_SUPPORTED_EXTENSION 512 - -typedef struct _WOW64_FLOATING_SAVE_AREA { - DWORD ControlWord; - DWORD StatusWord; - DWORD TagWord; - DWORD ErrorOffset; - DWORD ErrorSelector; - DWORD DataOffset; - DWORD DataSelector; - BYTE RegisterArea[WOW64_SIZE_OF_80387_REGISTERS]; - DWORD Cr0NpxState; -} WOW64_FLOATING_SAVE_AREA; - -typedef WOW64_FLOATING_SAVE_AREA *PWOW64_FLOATING_SAVE_AREA; - -#include "pshpack4.h" - -// -// Context Frame -// -// This frame has a several purposes: 1) it is used as an argument to -// NtContinue, 2) is is used to constuct a call frame for APC delivery, -// and 3) it is used in the user level thread creation routines. -// -// The layout of the record conforms to a standard call frame. -// - -typedef struct _WOW64_CONTEXT { - - // - // The flags values within this flag control the contents of - // a CONTEXT record. - // - // If the context record is used as an input parameter, then - // for each portion of the context record controlled by a flag - // whose value is set, it is assumed that that portion of the - // context record contains valid context. If the context record - // is being used to modify a threads context, then only that - // portion of the threads context will be modified. - // - // If the context record is used as an IN OUT parameter to capture - // the context of a thread, then only those portions of the thread's - // context corresponding to set flags will be returned. - // - // The context record is never used as an OUT only parameter. - // - - DWORD ContextFlags; - - // - // This section is specified/returned if CONTEXT_DEBUG_REGISTERS is - // set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT - // included in CONTEXT_FULL. - // - - DWORD Dr0; - DWORD Dr1; - DWORD Dr2; - DWORD Dr3; - DWORD Dr6; - DWORD Dr7; - - // - // This section is specified/returned if the - // ContextFlags word contians the flag CONTEXT_FLOATING_POINT. - // - - WOW64_FLOATING_SAVE_AREA FloatSave; - - // - // This section is specified/returned if the - // ContextFlags word contians the flag CONTEXT_SEGMENTS. - // - - DWORD SegGs; - DWORD SegFs; - DWORD SegEs; - DWORD SegDs; - - // - // This section is specified/returned if the - // ContextFlags word contians the flag CONTEXT_INTEGER. - // - - DWORD Edi; - DWORD Esi; - DWORD Ebx; - DWORD Edx; - DWORD Ecx; - DWORD Eax; - - // - // This section is specified/returned if the - // ContextFlags word contians the flag CONTEXT_CONTROL. - // - - DWORD Ebp; - DWORD Eip; - DWORD SegCs; // MUST BE SANITIZED - DWORD EFlags; // MUST BE SANITIZED - DWORD Esp; - DWORD SegSs; - - // - // This section is specified/returned if the ContextFlags word - // contains the flag CONTEXT_EXTENDED_REGISTERS. - // The format and contexts are processor specific - // - - BYTE ExtendedRegisters[WOW64_MAXIMUM_SUPPORTED_EXTENSION]; - -} WOW64_CONTEXT; - -typedef WOW64_CONTEXT *PWOW64_CONTEXT; - -#include "poppack.h" - - -typedef struct _WOW64_LDT_ENTRY { - WORD LimitLow; - WORD BaseLow; - union { - struct { - BYTE BaseMid; - BYTE Flags1; // Declare as bytes to avoid alignment - BYTE Flags2; // Problems. - BYTE BaseHi; - } Bytes; - struct { - DWORD BaseMid : 8; - DWORD Type : 5; - DWORD Dpl : 2; - DWORD Pres : 1; - DWORD LimitHi : 4; - DWORD Sys : 1; - DWORD Reserved_0 : 1; - DWORD Default_Big : 1; - DWORD Granularity : 1; - DWORD BaseHi : 8; - } Bits; - } HighWord; -} WOW64_LDT_ENTRY, *PWOW64_LDT_ENTRY; - -typedef struct _WOW64_DESCRIPTOR_TABLE_ENTRY { - DWORD Selector; - WOW64_LDT_ENTRY Descriptor; -} WOW64_DESCRIPTOR_TABLE_ENTRY, *PWOW64_DESCRIPTOR_TABLE_ENTRY; - -#define EXCEPTION_NONCONTINUABLE 0x1 // Noncontinuable exception -#define EXCEPTION_UNWINDING 0x2 // Unwind is in progress -#define EXCEPTION_EXIT_UNWIND 0x4 // Exit unwind is in progress -#define EXCEPTION_STACK_INVALID 0x8 // Stack out of limits or unaligned -#define EXCEPTION_NESTED_CALL 0x10 // Nested exception handler call -#define EXCEPTION_TARGET_UNWIND 0x20 // Target unwind in progress -#define EXCEPTION_COLLIDED_UNWIND 0x40 // Collided exception handler call - -#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND | \ - EXCEPTION_TARGET_UNWIND | EXCEPTION_COLLIDED_UNWIND) - -#define IS_UNWINDING(Flag) ((Flag & EXCEPTION_UNWIND) != 0) -#define IS_DISPATCHING(Flag) ((Flag & EXCEPTION_UNWIND) == 0) -#define IS_TARGET_UNWIND(Flag) (Flag & EXCEPTION_TARGET_UNWIND) - -#define EXCEPTION_MAXIMUM_PARAMETERS 15 // maximum number of exception parameters - -// -// Exception record definition. -// - -typedef struct _EXCEPTION_RECORD { - DWORD ExceptionCode; - DWORD ExceptionFlags; - struct _EXCEPTION_RECORD *ExceptionRecord; - PVOID ExceptionAddress; - DWORD NumberParameters; - ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; - } EXCEPTION_RECORD; - -typedef EXCEPTION_RECORD *PEXCEPTION_RECORD; - -typedef struct _EXCEPTION_RECORD32 { - DWORD ExceptionCode; - DWORD ExceptionFlags; - DWORD ExceptionRecord; - DWORD ExceptionAddress; - DWORD NumberParameters; - DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; -} EXCEPTION_RECORD32, *PEXCEPTION_RECORD32; - -typedef struct _EXCEPTION_RECORD64 { - DWORD ExceptionCode; - DWORD ExceptionFlags; - DWORD64 ExceptionRecord; - DWORD64 ExceptionAddress; - DWORD NumberParameters; - DWORD __unusedAlignment; - DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; -} EXCEPTION_RECORD64, *PEXCEPTION_RECORD64; - -// -// Typedef for pointer returned by exception_info() -// - -typedef struct _EXCEPTION_POINTERS { - PEXCEPTION_RECORD ExceptionRecord; - PCONTEXT ContextRecord; -} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; - -// end_ntoshvp -// end_wdm - - -#if defined(_IA64_) - -NTSYSAPI -VOID -NTAPI -RtlUnwind2 ( - _In_opt_ FRAME_POINTERS TargetFrame, - _In_opt_ PVOID TargetIp, - _In_opt_ PEXCEPTION_RECORD ExceptionRecord, - _In_ PVOID ReturnValue, - _In_ PCONTEXT ContextRecord - ); - -#endif - -typedef PVOID PACCESS_TOKEN; -typedef PVOID PSECURITY_DESCRIPTOR; -typedef PVOID PSID; -typedef PVOID PCLAIMS_BLOB; -//////////////////////////////////////////////////////////////////////// -// // -// ACCESS MASK // -// // -//////////////////////////////////////////////////////////////////////// - -// -// Define the access mask as a longword sized structure divided up as -// follows: -// -// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 -// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -// +---------------+---------------+-------------------------------+ -// |G|G|G|G|Res'd|A| StandardRights| SpecificRights | -// |R|W|E|A| |S| | | -// +-+-------------+---------------+-------------------------------+ -// -// typedef struct _ACCESS_MASK { -// WORD SpecificRights; -// BYTE StandardRights; -// BYTE AccessSystemAcl : 1; -// BYTE Reserved : 3; -// BYTE GenericAll : 1; -// BYTE GenericExecute : 1; -// BYTE GenericWrite : 1; -// BYTE GenericRead : 1; -// } ACCESS_MASK; -// typedef ACCESS_MASK *PACCESS_MASK; -// -// but to make life simple for programmer's we'll allow them to specify -// a desired access mask by simply OR'ing together mulitple single rights -// and treat an access mask as a DWORD. For example -// -// DesiredAccess = DELETE | READ_CONTROL -// -// So we'll declare ACCESS_MASK as DWORD -// - -// begin_wdm -// begin_ntoshvp -typedef DWORD ACCESS_MASK; -typedef ACCESS_MASK *PACCESS_MASK; - -// end_ntoshvp -// begin_access -//////////////////////////////////////////////////////////////////////// -// // -// ACCESS TYPES // -// // -//////////////////////////////////////////////////////////////////////// - - -// begin_wdm -// -// The following are masks for the predefined standard access types -// - -#define DELETE (0x00010000L) -#define READ_CONTROL (0x00020000L) -#define WRITE_DAC (0x00040000L) -#define WRITE_OWNER (0x00080000L) -#define SYNCHRONIZE (0x00100000L) - -#define STANDARD_RIGHTS_REQUIRED (0x000F0000L) - -#define STANDARD_RIGHTS_READ (READ_CONTROL) -#define STANDARD_RIGHTS_WRITE (READ_CONTROL) -#define STANDARD_RIGHTS_EXECUTE (READ_CONTROL) - -#define STANDARD_RIGHTS_ALL (0x001F0000L) - -#define SPECIFIC_RIGHTS_ALL (0x0000FFFFL) - -// -// AccessSystemAcl access type -// - -#define ACCESS_SYSTEM_SECURITY (0x01000000L) - -// -// MaximumAllowed access type -// - -#define MAXIMUM_ALLOWED (0x02000000L) - -// -// These are the generic rights. -// - -#define GENERIC_READ (0x80000000L) -#define GENERIC_WRITE (0x40000000L) -#define GENERIC_EXECUTE (0x20000000L) -#define GENERIC_ALL (0x10000000L) - -// -// Define the generic mapping array. This is used to denote the -// mapping of each generic access right to a specific access mask. -// - -typedef struct _GENERIC_MAPPING { - ACCESS_MASK GenericRead; - ACCESS_MASK GenericWrite; - ACCESS_MASK GenericExecute; - ACCESS_MASK GenericAll; -} GENERIC_MAPPING; -typedef GENERIC_MAPPING *PGENERIC_MAPPING; - - - -//////////////////////////////////////////////////////////////////////// -// // -// LUID_AND_ATTRIBUTES // -// // -//////////////////////////////////////////////////////////////////////// -// -// - - -#include - -typedef struct _LUID_AND_ATTRIBUTES { - LUID Luid; - DWORD Attributes; - } LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES; -typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; -typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY; - -#include - - -//////////////////////////////////////////////////////////////////////// -// // -// Security Id (SID) // -// // -//////////////////////////////////////////////////////////////////////// -// -// -// Pictorially the structure of an SID is as follows: -// -// 1 1 1 1 1 1 -// 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -// +---------------------------------------------------------------+ -// | SubAuthorityCount |Reserved1 (SBZ)| Revision | -// +---------------------------------------------------------------+ -// | IdentifierAuthority[0] | -// +---------------------------------------------------------------+ -// | IdentifierAuthority[1] | -// +---------------------------------------------------------------+ -// | IdentifierAuthority[2] | -// +---------------------------------------------------------------+ -// | | -// +- - - - - - - - SubAuthority[] - - - - - - - - -+ -// | | -// +---------------------------------------------------------------+ -// -// - - -// begin_ntifs - -#ifndef SID_IDENTIFIER_AUTHORITY_DEFINED -#define SID_IDENTIFIER_AUTHORITY_DEFINED -typedef struct _SID_IDENTIFIER_AUTHORITY { - BYTE Value[6]; -} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY; -#endif - - -#ifndef SID_DEFINED -#define SID_DEFINED -typedef struct _SID { - BYTE Revision; - BYTE SubAuthorityCount; - SID_IDENTIFIER_AUTHORITY IdentifierAuthority; -#ifdef MIDL_PASS - [size_is(SubAuthorityCount)] DWORD SubAuthority[*]; -#else // MIDL_PASS - DWORD SubAuthority[ANYSIZE_ARRAY]; -#endif // MIDL_PASS -} SID, *PISID; -#endif - -#define SID_REVISION (1) // Current revision level -#define SID_MAX_SUB_AUTHORITIES (15) -#define SID_RECOMMENDED_SUB_AUTHORITIES (1) // Will change to around 6 - - // in a future release. -#ifndef MIDL_PASS -#define SECURITY_MAX_SID_SIZE \ - (sizeof(SID) - sizeof(DWORD) + (SID_MAX_SUB_AUTHORITIES * sizeof(DWORD))) - -#define SECURITY_SID_SIZE(SubAuthorityCount_) (sizeof(SID) - sizeof(DWORD) + \ - (SubAuthorityCount_) * sizeof(DWORD)) - -// 2 (S-) -// 4 (Rev(max: 255)-) -// 15 ( -// If (Auth < 2^32): Auth(max:4294967295)- -// Else: 0xAuth(max:FFFFFFFFFFFF)- -// ) -// (11 * SID_MAX_SUB_AUTHORITIES) (SubN(max:4294967295)-) -// 1 (NULL character) -// = 187 (assuming SID_MAX_SUB_AUTHORITIES = 15) -#define SECURITY_MAX_SID_STRING_CHARACTERS \ - (2 + 4 + 15 + (11 * SID_MAX_SUB_AUTHORITIES) + 1) - -// -// Union which can hold any valid sid. -// - -typedef union _SE_SID { - SID Sid; - BYTE Buffer[SECURITY_MAX_SID_SIZE]; -} SE_SID, *PSE_SID; - -#endif // MIDL_PASS - - -typedef enum _SID_NAME_USE { - SidTypeUser = 1, - SidTypeGroup, - SidTypeDomain, - SidTypeAlias, - SidTypeWellKnownGroup, - SidTypeDeletedAccount, - SidTypeInvalid, - SidTypeUnknown, - SidTypeComputer, - SidTypeLabel, - SidTypeLogonSession -} SID_NAME_USE, *PSID_NAME_USE; - -typedef struct _SID_AND_ATTRIBUTES { -#ifdef MIDL_PASS - PISID Sid; -#else // MIDL_PASS - PSID Sid; -#endif // MIDL_PASS - DWORD Attributes; - } SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES; - -typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; -typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY; - -#define SID_HASH_SIZE 32 -typedef ULONG_PTR SID_HASH_ENTRY, *PSID_HASH_ENTRY; - -typedef struct _SID_AND_ATTRIBUTES_HASH { - DWORD SidCount; - PSID_AND_ATTRIBUTES SidAttr; - SID_HASH_ENTRY Hash[SID_HASH_SIZE]; -} SID_AND_ATTRIBUTES_HASH, *PSID_AND_ATTRIBUTES_HASH; - - -///////////////////////////////////////////////////////////////////////////// -// // -// Universal well-known SIDs // -// // -// Null SID S-1-0-0 // -// World S-1-1-0 // -// Local S-1-2-0 // -// Creator Owner ID S-1-3-0 // -// Creator Group ID S-1-3-1 // -// Creator Owner Server ID S-1-3-2 // -// Creator Group Server ID S-1-3-3 // -// // -// (Non-unique IDs) S-1-4 // -// // -///////////////////////////////////////////////////////////////////////////// - -#define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} -#define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} -#define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2} -#define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3} -#define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4} -#define SECURITY_RESOURCE_MANAGER_AUTHORITY {0,0,0,0,0,9} - - -#define SECURITY_NULL_RID (0x00000000L) -#define SECURITY_WORLD_RID (0x00000000L) -#define SECURITY_LOCAL_RID (0x00000000L) -#define SECURITY_LOCAL_LOGON_RID (0x00000001L) - -#define SECURITY_CREATOR_OWNER_RID (0x00000000L) -#define SECURITY_CREATOR_GROUP_RID (0x00000001L) - -#define SECURITY_CREATOR_OWNER_SERVER_RID (0x00000002L) -#define SECURITY_CREATOR_GROUP_SERVER_RID (0x00000003L) - -#define SECURITY_CREATOR_OWNER_RIGHTS_RID (0x00000004L) - -/////////////////////////////////////////////////////////////////////////////// -// // -// NT well-known SIDs // -// // -// NT Authority S-1-5 // -// Dialup S-1-5-1 // -// // -// Network S-1-5-2 // -// Batch S-1-5-3 // -// Interactive S-1-5-4 // -// (Logon IDs) S-1-5-5-X-Y // -// Service S-1-5-6 // -// AnonymousLogon S-1-5-7 (aka null logon session) // -// Proxy S-1-5-8 // -// Enterprise DC (EDC) S-1-5-9 (aka domain controller account) // -// Self S-1-5-10 (self RID) // -// Authenticated User S-1-5-11 (Authenticated user somewhere) // -// Restricted Code S-1-5-12 (Running restricted code) // -// Terminal Server S-1-5-13 (Running on Terminal Server) // -// Remote Logon S-1-5-14 (Remote Interactive Logon) // -// This Organization S-1-5-15 // -// // -// IUser S-1-5-17 -// Local System S-1-5-18 // -// Local Service S-1-5-19 // -// Network Service S-1-5-20 // -// // -// (NT non-unique IDs) S-1-5-0x15-... (NT Domain Sids) // -// // -// (Built-in domain) S-1-5-0x20 // -// // -// (Security Package IDs) S-1-5-0x40 // -// NTLM Authentication S-1-5-0x40-10 // -// SChannel Authentication S-1-5-0x40-14 // -// Digest Authentication S-1-5-0x40-21 // -// // -// Other Organization S-1-5-1000 (>=1000 can not be filtered) // -// // -// // -// NOTE: the relative identifier values (RIDs) determine which security // -// boundaries the SID is allowed to cross. Before adding new RIDs, // -// a determination needs to be made regarding which range they should // -// be added to in order to ensure proper "SID filtering" // -// // -/////////////////////////////////////////////////////////////////////////////// - - -#define SECURITY_NT_AUTHORITY {0,0,0,0,0,5} // ntifs - -#define SECURITY_DIALUP_RID (0x00000001L) -#define SECURITY_NETWORK_RID (0x00000002L) -#define SECURITY_BATCH_RID (0x00000003L) -#define SECURITY_INTERACTIVE_RID (0x00000004L) -#define SECURITY_LOGON_IDS_RID (0x00000005L) -#define SECURITY_LOGON_IDS_RID_COUNT (3L) -#define SECURITY_SERVICE_RID (0x00000006L) -#define SECURITY_ANONYMOUS_LOGON_RID (0x00000007L) -#define SECURITY_PROXY_RID (0x00000008L) -#define SECURITY_ENTERPRISE_CONTROLLERS_RID (0x00000009L) -#define SECURITY_SERVER_LOGON_RID SECURITY_ENTERPRISE_CONTROLLERS_RID -#define SECURITY_PRINCIPAL_SELF_RID (0x0000000AL) -#define SECURITY_AUTHENTICATED_USER_RID (0x0000000BL) -#define SECURITY_RESTRICTED_CODE_RID (0x0000000CL) -#define SECURITY_TERMINAL_SERVER_RID (0x0000000DL) -#define SECURITY_REMOTE_LOGON_RID (0x0000000EL) -#define SECURITY_THIS_ORGANIZATION_RID (0x0000000FL) -#define SECURITY_IUSER_RID (0x00000011L) -#define SECURITY_LOCAL_SYSTEM_RID (0x00000012L) -#define SECURITY_LOCAL_SERVICE_RID (0x00000013L) -#define SECURITY_NETWORK_SERVICE_RID (0x00000014L) - -#define SECURITY_NT_NON_UNIQUE (0x00000015L) -#define SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT (3L) - -#define SECURITY_ENTERPRISE_READONLY_CONTROLLERS_RID (0x00000016L) - -#define SECURITY_BUILTIN_DOMAIN_RID (0x00000020L) -#define SECURITY_WRITE_RESTRICTED_CODE_RID (0x00000021L) - - -#define SECURITY_PACKAGE_BASE_RID (0x00000040L) -#define SECURITY_PACKAGE_RID_COUNT (2L) -#define SECURITY_PACKAGE_NTLM_RID (0x0000000AL) -#define SECURITY_PACKAGE_SCHANNEL_RID (0x0000000EL) -#define SECURITY_PACKAGE_DIGEST_RID (0x00000015L) - -#define SECURITY_CRED_TYPE_BASE_RID (0x00000041L) -#define SECURITY_CRED_TYPE_RID_COUNT (2L) -#define SECURITY_CRED_TYPE_THIS_ORG_CERT_RID (0x00000001L) - -#define SECURITY_MIN_BASE_RID (0x00000050L) - -#define SECURITY_SERVICE_ID_BASE_RID (0x00000050L) -#define SECURITY_SERVICE_ID_RID_COUNT (6L) - -#define SECURITY_RESERVED_ID_BASE_RID (0x00000051L) - -#define SECURITY_APPPOOL_ID_BASE_RID (0x00000052L) -#define SECURITY_APPPOOL_ID_RID_COUNT (6L) - -#define SECURITY_VIRTUALSERVER_ID_BASE_RID (0x00000053L) -#define SECURITY_VIRTUALSERVER_ID_RID_COUNT (6L) - -#define SECURITY_USERMODEDRIVERHOST_ID_BASE_RID (0x00000054L) -#define SECURITY_USERMODEDRIVERHOST_ID_RID_COUNT (6L) - -#define SECURITY_CLOUD_INFRASTRUCTURE_SERVICES_ID_BASE_RID (0x00000055L) -#define SECURITY_CLOUD_INFRASTRUCTURE_SERVICES_ID_RID_COUNT (6L) - -#define SECURITY_WMIHOST_ID_BASE_RID (0x00000056L) -#define SECURITY_WMIHOST_ID_RID_COUNT (6L) - -#define SECURITY_TASK_ID_BASE_RID (0x00000057L) - -#define SECURITY_NFS_ID_BASE_RID (0x00000058L) - -#define SECURITY_COM_ID_BASE_RID (0x00000059L) - -#define SECURITY_WINDOW_MANAGER_BASE_RID (0x0000005AL) - -#define SECURITY_RDV_GFX_BASE_RID (0x0000005BL) - -#define SECURITY_DASHOST_ID_BASE_RID (0x0000005CL) -#define SECURITY_DASHOST_ID_RID_COUNT (6L) - -#define SECURITY_USERMANAGER_ID_BASE_RID (0x0000005DL) -#define SECURITY_USERMANAGER_ID_RID_COUNT (6L) - -#define SECURITY_WINRM_ID_BASE_RID (0x0000005EL) -#define SECURITY_WINRM_ID_RID_COUNT (6L) - -#define SECURITY_CCG_ID_BASE_RID (0x0000005FL) -#define SECURITY_UMFD_BASE_RID (0x00000060L) - -#define SECURITY_VIRTUALACCOUNT_ID_RID_COUNT (6L) - -// -// Virtual account logon is not limited to inbox callers. Reserve base RID 0x6F for application usage. -// - -#define SECURITY_MAX_BASE_RID (0x0000006FL) -#define SECURITY_MAX_ALWAYS_FILTERED (0x000003E7L) -#define SECURITY_MIN_NEVER_FILTERED (0x000003E8L) - -#define SECURITY_OTHER_ORGANIZATION_RID (0x000003E8L) - -// -//Service SID type RIDs are in the range 0x50- 0x6F. Therefore, we are giving the next available RID to Windows Mobile team. -// -#define SECURITY_WINDOWSMOBILE_ID_BASE_RID (0x00000070L) - -// -// Installer Capability Group Sid related. Currently Base RID is same as LOCAL DOMAIN. -// -#define SECURITY_INSTALLER_GROUP_CAPABILITY_BASE (0x20) -#define SECURITY_INSTALLER_GROUP_CAPABILITY_RID_COUNT (9) - -// Note: This is because the App Capability Rid is S-1-15-3-1024-... -// whereas the service group rid is S-1-5-32-... -// The number of RIDs from hash (8) are the same for both -#define SECURITY_INSTALLER_CAPABILITY_RID_COUNT (10) - -// -//Well-known group for local accounts -// -#define SECURITY_LOCAL_ACCOUNT_RID (0x00000071L) -#define SECURITY_LOCAL_ACCOUNT_AND_ADMIN_RID (0x00000072L) - -///////////////////////////////////////////////////////////////////////////// -// // -// well-known domain relative sub-authority values (RIDs)... // -// // -///////////////////////////////////////////////////////////////////////////// - - -#define DOMAIN_GROUP_RID_AUTHORIZATION_DATA_IS_COMPOUNDED (0x000001F0L) -#define DOMAIN_GROUP_RID_AUTHORIZATION_DATA_CONTAINS_CLAIMS (0x000001F1L) -#define DOMAIN_GROUP_RID_ENTERPRISE_READONLY_DOMAIN_CONTROLLERS (0x000001F2L) - -#define FOREST_USER_RID_MAX (0x000001F3L) - -// Well-known users ... - -#define DOMAIN_USER_RID_ADMIN (0x000001F4L) -#define DOMAIN_USER_RID_GUEST (0x000001F5L) -#define DOMAIN_USER_RID_KRBTGT (0x000001F6L) -#define DOMAIN_USER_RID_DEFAULT_ACCOUNT (0x000001F7L) -#define DOMAIN_USER_RID_WDAG_ACCOUNT (0x000001F8L) - -#define DOMAIN_USER_RID_MAX (0x000003E7L) - - -// well-known groups ... - -#define DOMAIN_GROUP_RID_ADMINS (0x00000200L) -#define DOMAIN_GROUP_RID_USERS (0x00000201L) -#define DOMAIN_GROUP_RID_GUESTS (0x00000202L) -#define DOMAIN_GROUP_RID_COMPUTERS (0x00000203L) -#define DOMAIN_GROUP_RID_CONTROLLERS (0x00000204L) -#define DOMAIN_GROUP_RID_CERT_ADMINS (0x00000205L) -#define DOMAIN_GROUP_RID_SCHEMA_ADMINS (0x00000206L) -#define DOMAIN_GROUP_RID_ENTERPRISE_ADMINS (0x00000207L) -#define DOMAIN_GROUP_RID_POLICY_ADMINS (0x00000208L) -#define DOMAIN_GROUP_RID_READONLY_CONTROLLERS (0x00000209L) -#define DOMAIN_GROUP_RID_CLONEABLE_CONTROLLERS (0x0000020AL) -#define DOMAIN_GROUP_RID_CDC_RESERVED (0x0000020CL) -#define DOMAIN_GROUP_RID_PROTECTED_USERS (0x0000020DL) -#define DOMAIN_GROUP_RID_KEY_ADMINS (0x0000020EL) -#define DOMAIN_GROUP_RID_ENTERPRISE_KEY_ADMINS (0x0000020FL) - -// well-known aliases ... - -#define DOMAIN_ALIAS_RID_ADMINS (0x00000220L) -#define DOMAIN_ALIAS_RID_USERS (0x00000221L) -#define DOMAIN_ALIAS_RID_GUESTS (0x00000222L) -#define DOMAIN_ALIAS_RID_POWER_USERS (0x00000223L) - -#define DOMAIN_ALIAS_RID_ACCOUNT_OPS (0x00000224L) -#define DOMAIN_ALIAS_RID_SYSTEM_OPS (0x00000225L) -#define DOMAIN_ALIAS_RID_PRINT_OPS (0x00000226L) -#define DOMAIN_ALIAS_RID_BACKUP_OPS (0x00000227L) - -#define DOMAIN_ALIAS_RID_REPLICATOR (0x00000228L) -#define DOMAIN_ALIAS_RID_RAS_SERVERS (0x00000229L) -#define DOMAIN_ALIAS_RID_PREW2KCOMPACCESS (0x0000022AL) -#define DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS (0x0000022BL) -#define DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS (0x0000022CL) -#define DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS (0x0000022DL) - -#define DOMAIN_ALIAS_RID_MONITORING_USERS (0x0000022EL) -#define DOMAIN_ALIAS_RID_LOGGING_USERS (0x0000022FL) -#define DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS (0x00000230L) -#define DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS (0x00000231L) -#define DOMAIN_ALIAS_RID_DCOM_USERS (0x00000232L) -#define DOMAIN_ALIAS_RID_IUSERS (0x00000238L) -#define DOMAIN_ALIAS_RID_CRYPTO_OPERATORS (0x00000239L) -#define DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP (0x0000023BL) -#define DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP (0x0000023CL) -#define DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP (0x0000023DL) -#define DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP (0x0000023EL) -#define DOMAIN_ALIAS_RID_RDS_REMOTE_ACCESS_SERVERS (0x0000023FL) -#define DOMAIN_ALIAS_RID_RDS_ENDPOINT_SERVERS (0x00000240L) -#define DOMAIN_ALIAS_RID_RDS_MANAGEMENT_SERVERS (0x00000241L) -#define DOMAIN_ALIAS_RID_HYPER_V_ADMINS (0x00000242L) -#define DOMAIN_ALIAS_RID_ACCESS_CONTROL_ASSISTANCE_OPS (0x00000243L) -#define DOMAIN_ALIAS_RID_REMOTE_MANAGEMENT_USERS (0x00000244L) -#define DOMAIN_ALIAS_RID_DEFAULT_ACCOUNT (0x00000245L) -#define DOMAIN_ALIAS_RID_STORAGE_REPLICA_ADMINS (0x00000246L) -#define DOMAIN_ALIAS_RID_DEVICE_OWNERS (0x00000247L) - -// -// Application Package Authority. -// - -#define SECURITY_APP_PACKAGE_AUTHORITY {0,0,0,0,0,15} - -#define SECURITY_APP_PACKAGE_BASE_RID (0x00000002L) -#define SECURITY_BUILTIN_APP_PACKAGE_RID_COUNT (2L) -#define SECURITY_APP_PACKAGE_RID_COUNT (8L) -#define SECURITY_CAPABILITY_BASE_RID (0x00000003L) -#define SECURITY_CAPABILITY_APP_RID (0x000000400) -#define SECURITY_BUILTIN_CAPABILITY_RID_COUNT (2L) -#define SECURITY_CAPABILITY_RID_COUNT (5L) -#define SECURITY_PARENT_PACKAGE_RID_COUNT (SECURITY_APP_PACKAGE_RID_COUNT) -#define SECURITY_CHILD_PACKAGE_RID_COUNT (12L) - -// -// Built-in Packages. -// - -#define SECURITY_BUILTIN_PACKAGE_ANY_PACKAGE (0x00000001L) -#define SECURITY_BUILTIN_PACKAGE_ANY_RESTRICTED_PACKAGE (0x00000002L) - -// -// Built-in Capabilities. -// - -#define SECURITY_CAPABILITY_INTERNET_CLIENT (0x00000001L) -#define SECURITY_CAPABILITY_INTERNET_CLIENT_SERVER (0x00000002L) -#define SECURITY_CAPABILITY_PRIVATE_NETWORK_CLIENT_SERVER (0x00000003L) -#define SECURITY_CAPABILITY_PICTURES_LIBRARY (0x00000004L) -#define SECURITY_CAPABILITY_VIDEOS_LIBRARY (0x00000005L) -#define SECURITY_CAPABILITY_MUSIC_LIBRARY (0x00000006L) -#define SECURITY_CAPABILITY_DOCUMENTS_LIBRARY (0x00000007L) -#define SECURITY_CAPABILITY_ENTERPRISE_AUTHENTICATION (0x00000008L) -#define SECURITY_CAPABILITY_SHARED_USER_CERTIFICATES (0x00000009L) -#define SECURITY_CAPABILITY_REMOVABLE_STORAGE (0x0000000AL) -#define SECURITY_CAPABILITY_APPOINTMENTS (0x0000000BL) -#define SECURITY_CAPABILITY_CONTACTS (0x0000000CL) - -#define SECURITY_CAPABILITY_INTERNET_EXPLORER (0x00001000L) - -// -// Mandatory Label Authority. -// - -#define SECURITY_MANDATORY_LABEL_AUTHORITY {0,0,0,0,0,16} -#define SECURITY_MANDATORY_UNTRUSTED_RID (0x00000000L) -#define SECURITY_MANDATORY_LOW_RID (0x00001000L) -#define SECURITY_MANDATORY_MEDIUM_RID (0x00002000L) -#define SECURITY_MANDATORY_MEDIUM_PLUS_RID (SECURITY_MANDATORY_MEDIUM_RID + 0x100) -#define SECURITY_MANDATORY_HIGH_RID (0x00003000L) -#define SECURITY_MANDATORY_SYSTEM_RID (0x00004000L) -#define SECURITY_MANDATORY_PROTECTED_PROCESS_RID (0x00005000L) - -// -// SECURITY_MANDATORY_MAXIMUM_USER_RID is the highest RID that -// can be set by a usermode caller. -// - -#define SECURITY_MANDATORY_MAXIMUM_USER_RID SECURITY_MANDATORY_SYSTEM_RID - -#define MANDATORY_LEVEL_TO_MANDATORY_RID(IL) (IL * 0x1000) - -#define SECURITY_SCOPED_POLICY_ID_AUTHORITY {0,0,0,0,0,17} - -// -// Authentication Authority -// - -#define SECURITY_AUTHENTICATION_AUTHORITY {0,0,0,0,0,18} -#define SECURITY_AUTHENTICATION_AUTHORITY_RID_COUNT (1L) -#define SECURITY_AUTHENTICATION_AUTHORITY_ASSERTED_RID (0x00000001L) -#define SECURITY_AUTHENTICATION_SERVICE_ASSERTED_RID (0x00000002L) -#define SECURITY_AUTHENTICATION_FRESH_KEY_AUTH_RID (0x00000003L) -#define SECURITY_AUTHENTICATION_KEY_TRUST_RID (0x00000004L) -#define SECURITY_AUTHENTICATION_KEY_PROPERTY_MFA_RID (0x00000005L) -#define SECURITY_AUTHENTICATION_KEY_PROPERTY_ATTESTATION_RID (0x00000006L) - -// -// Process Trust Authority -// - -#define SECURITY_PROCESS_TRUST_AUTHORITY {0,0,0,0,0,19} -#define SECURITY_PROCESS_TRUST_AUTHORITY_RID_COUNT (2L) - -#define SECURITY_PROCESS_PROTECTION_TYPE_FULL_RID (0x00000400L) -#define SECURITY_PROCESS_PROTECTION_TYPE_LITE_RID (0x00000200L) -#define SECURITY_PROCESS_PROTECTION_TYPE_NONE_RID (0x00000000L) - -#define SECURITY_PROCESS_PROTECTION_LEVEL_WINTCB_RID (0x00002000L) -#define SECURITY_PROCESS_PROTECTION_LEVEL_WINDOWS_RID (0x00001000L) -#define SECURITY_PROCESS_PROTECTION_LEVEL_APP_RID (0x00000800L) -#define SECURITY_PROCESS_PROTECTION_LEVEL_ANTIMALWARE_RID (0x00000600L) -#define SECURITY_PROCESS_PROTECTION_LEVEL_AUTHENTICODE_RID (0x00000400L) -#define SECURITY_PROCESS_PROTECTION_LEVEL_NONE_RID (0x00000000L) - -// -// Trusted Installer RIDs -// - -#define SECURITY_TRUSTED_INSTALLER_RID1 956008885 -#define SECURITY_TRUSTED_INSTALLER_RID2 3418522649 -#define SECURITY_TRUSTED_INSTALLER_RID3 1831038044 -#define SECURITY_TRUSTED_INSTALLER_RID4 1853292631 -#define SECURITY_TRUSTED_INSTALLER_RID5 2271478464 - - - - - -// -// Well known SID definitions for lookup. -// - -typedef enum { - - WinNullSid = 0, - WinWorldSid = 1, - WinLocalSid = 2, - WinCreatorOwnerSid = 3, - WinCreatorGroupSid = 4, - WinCreatorOwnerServerSid = 5, - WinCreatorGroupServerSid = 6, - WinNtAuthoritySid = 7, - WinDialupSid = 8, - WinNetworkSid = 9, - WinBatchSid = 10, - WinInteractiveSid = 11, - WinServiceSid = 12, - WinAnonymousSid = 13, - WinProxySid = 14, - WinEnterpriseControllersSid = 15, - WinSelfSid = 16, - WinAuthenticatedUserSid = 17, - WinRestrictedCodeSid = 18, - WinTerminalServerSid = 19, - WinRemoteLogonIdSid = 20, - WinLogonIdsSid = 21, - WinLocalSystemSid = 22, - WinLocalServiceSid = 23, - WinNetworkServiceSid = 24, - WinBuiltinDomainSid = 25, - WinBuiltinAdministratorsSid = 26, - WinBuiltinUsersSid = 27, - WinBuiltinGuestsSid = 28, - WinBuiltinPowerUsersSid = 29, - WinBuiltinAccountOperatorsSid = 30, - WinBuiltinSystemOperatorsSid = 31, - WinBuiltinPrintOperatorsSid = 32, - WinBuiltinBackupOperatorsSid = 33, - WinBuiltinReplicatorSid = 34, - WinBuiltinPreWindows2000CompatibleAccessSid = 35, - WinBuiltinRemoteDesktopUsersSid = 36, - WinBuiltinNetworkConfigurationOperatorsSid = 37, - WinAccountAdministratorSid = 38, - WinAccountGuestSid = 39, - WinAccountKrbtgtSid = 40, - WinAccountDomainAdminsSid = 41, - WinAccountDomainUsersSid = 42, - WinAccountDomainGuestsSid = 43, - WinAccountComputersSid = 44, - WinAccountControllersSid = 45, - WinAccountCertAdminsSid = 46, - WinAccountSchemaAdminsSid = 47, - WinAccountEnterpriseAdminsSid = 48, - WinAccountPolicyAdminsSid = 49, - WinAccountRasAndIasServersSid = 50, - WinNTLMAuthenticationSid = 51, - WinDigestAuthenticationSid = 52, - WinSChannelAuthenticationSid = 53, - WinThisOrganizationSid = 54, - WinOtherOrganizationSid = 55, - WinBuiltinIncomingForestTrustBuildersSid = 56, - WinBuiltinPerfMonitoringUsersSid = 57, - WinBuiltinPerfLoggingUsersSid = 58, - WinBuiltinAuthorizationAccessSid = 59, - WinBuiltinTerminalServerLicenseServersSid = 60, - WinBuiltinDCOMUsersSid = 61, - WinBuiltinIUsersSid = 62, - WinIUserSid = 63, - WinBuiltinCryptoOperatorsSid = 64, - WinUntrustedLabelSid = 65, - WinLowLabelSid = 66, - WinMediumLabelSid = 67, - WinHighLabelSid = 68, - WinSystemLabelSid = 69, - WinWriteRestrictedCodeSid = 70, - WinCreatorOwnerRightsSid = 71, - WinCacheablePrincipalsGroupSid = 72, - WinNonCacheablePrincipalsGroupSid = 73, - WinEnterpriseReadonlyControllersSid = 74, - WinAccountReadonlyControllersSid = 75, - WinBuiltinEventLogReadersGroup = 76, - WinNewEnterpriseReadonlyControllersSid = 77, - WinBuiltinCertSvcDComAccessGroup = 78, - WinMediumPlusLabelSid = 79, - WinLocalLogonSid = 80, - WinConsoleLogonSid = 81, - WinThisOrganizationCertificateSid = 82, - WinApplicationPackageAuthoritySid = 83, - WinBuiltinAnyPackageSid = 84, - WinCapabilityInternetClientSid = 85, - WinCapabilityInternetClientServerSid = 86, - WinCapabilityPrivateNetworkClientServerSid = 87, - WinCapabilityPicturesLibrarySid = 88, - WinCapabilityVideosLibrarySid = 89, - WinCapabilityMusicLibrarySid = 90, - WinCapabilityDocumentsLibrarySid = 91, - WinCapabilitySharedUserCertificatesSid = 92, - WinCapabilityEnterpriseAuthenticationSid = 93, - WinCapabilityRemovableStorageSid = 94, - WinBuiltinRDSRemoteAccessServersSid = 95, - WinBuiltinRDSEndpointServersSid = 96, - WinBuiltinRDSManagementServersSid = 97, - WinUserModeDriversSid = 98, - WinBuiltinHyperVAdminsSid = 99, - WinAccountCloneableControllersSid = 100, - WinBuiltinAccessControlAssistanceOperatorsSid = 101, - WinBuiltinRemoteManagementUsersSid = 102, - WinAuthenticationAuthorityAssertedSid = 103, - WinAuthenticationServiceAssertedSid = 104, - WinLocalAccountSid = 105, - WinLocalAccountAndAdministratorSid = 106, - WinAccountProtectedUsersSid = 107, - WinCapabilityAppointmentsSid = 108, - WinCapabilityContactsSid = 109, - WinAccountDefaultSystemManagedSid = 110, - WinBuiltinDefaultSystemManagedGroupSid = 111, - WinBuiltinStorageReplicaAdminsSid = 112, - WinAccountKeyAdminsSid = 113, - WinAccountEnterpriseKeyAdminsSid = 114, - WinAuthenticationKeyTrustSid = 115, - WinAuthenticationKeyPropertyMFASid = 116, - WinAuthenticationKeyPropertyAttestationSid = 117, - WinAuthenticationFreshKeyAuthSid = 118, - WinBuiltinDeviceOwnersSid = 119, -} WELL_KNOWN_SID_TYPE; - -// -// Allocate the System Luid. The first 1000 LUIDs are reserved. -// Use #999 here (0x3e7 = 999) -// - -#define SYSTEM_LUID { 0x3e7, 0x0 } -#define ANONYMOUS_LOGON_LUID { 0x3e6, 0x0 } -#define LOCALSERVICE_LUID { 0x3e5, 0x0 } -#define NETWORKSERVICE_LUID { 0x3e4, 0x0 } -#define IUSER_LUID { 0x3e3, 0x0 } -#define PROTECTED_TO_SYSTEM_LUID { 0x3e2, 0x0 } - -// end_ntifs - -//////////////////////////////////////////////////////////////////////// -// // -// User and Group related SID attributes // -// // -//////////////////////////////////////////////////////////////////////// - -// -// Group attributes -// - -#define SE_GROUP_MANDATORY (0x00000001L) -#define SE_GROUP_ENABLED_BY_DEFAULT (0x00000002L) -#define SE_GROUP_ENABLED (0x00000004L) -#define SE_GROUP_OWNER (0x00000008L) -#define SE_GROUP_USE_FOR_DENY_ONLY (0x00000010L) -#define SE_GROUP_INTEGRITY (0x00000020L) -#define SE_GROUP_INTEGRITY_ENABLED (0x00000040L) -#define SE_GROUP_LOGON_ID (0xC0000000L) -#define SE_GROUP_RESOURCE (0x20000000L) - -#define SE_GROUP_VALID_ATTRIBUTES (SE_GROUP_MANDATORY | \ - SE_GROUP_ENABLED_BY_DEFAULT | \ - SE_GROUP_ENABLED | \ - SE_GROUP_OWNER | \ - SE_GROUP_USE_FOR_DENY_ONLY | \ - SE_GROUP_LOGON_ID | \ - SE_GROUP_RESOURCE | \ - SE_GROUP_INTEGRITY | \ - SE_GROUP_INTEGRITY_ENABLED) - -// -// User attributes -// - -// (None yet defined.) - - - - -//////////////////////////////////////////////////////////////////////// -// // -// ACL and ACE // -// // -//////////////////////////////////////////////////////////////////////// - -// -// Define an ACL and the ACE format. The structure of an ACL header -// followed by one or more ACEs. Pictorally the structure of an ACL header -// is as follows: -// -// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 -// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -// +-------------------------------+---------------+---------------+ -// | AclSize | Sbz1 | AclRevision | -// +-------------------------------+---------------+---------------+ -// | Sbz2 | AceCount | -// +-------------------------------+-------------------------------+ -// -// The current AclRevision is defined to be ACL_REVISION. -// -// AclSize is the size, in bytes, allocated for the ACL. This includes -// the ACL header, ACES, and remaining free space in the buffer. -// -// AceCount is the number of ACES in the ACL. -// - -// begin_wdm -// This is the *current* ACL revision - -#define ACL_REVISION (2) -#define ACL_REVISION_DS (4) - -// This is the history of ACL revisions. Add a new one whenever -// ACL_REVISION is updated - -#define ACL_REVISION1 (1) -#define MIN_ACL_REVISION ACL_REVISION2 -#define ACL_REVISION2 (2) -#define ACL_REVISION3 (3) -#define ACL_REVISION4 (4) -#define MAX_ACL_REVISION ACL_REVISION4 - -typedef struct _ACL { - BYTE AclRevision; - BYTE Sbz1; - WORD AclSize; - WORD AceCount; - WORD Sbz2; -} ACL; -typedef ACL *PACL; - -// end_wdm -// begin_ntifs - -// -// The structure of an ACE is a common ace header followed by ace type -// specific data. Pictorally the structure of the common ace header is -// as follows: -// -// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 -// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -// +---------------+-------+-------+---------------+---------------+ -// | AceSize | AceFlags | AceType | -// +---------------+-------+-------+---------------+---------------+ -// -// AceType denotes the type of the ace, there are some predefined ace -// types -// -// AceSize is the size, in bytes, of ace. -// -// AceFlags are the Ace flags for audit and inheritance, defined shortly. - -typedef struct _ACE_HEADER { - BYTE AceType; - BYTE AceFlags; - WORD AceSize; -} ACE_HEADER; -typedef ACE_HEADER *PACE_HEADER; - -// -// The following are the predefined ace types that go into the AceType -// field of an Ace header. -// - -#define ACCESS_MIN_MS_ACE_TYPE (0x0) -#define ACCESS_ALLOWED_ACE_TYPE (0x0) -#define ACCESS_DENIED_ACE_TYPE (0x1) -#define SYSTEM_AUDIT_ACE_TYPE (0x2) -#define SYSTEM_ALARM_ACE_TYPE (0x3) -#define ACCESS_MAX_MS_V2_ACE_TYPE (0x3) - -#define ACCESS_ALLOWED_COMPOUND_ACE_TYPE (0x4) -#define ACCESS_MAX_MS_V3_ACE_TYPE (0x4) - -#define ACCESS_MIN_MS_OBJECT_ACE_TYPE (0x5) -#define ACCESS_ALLOWED_OBJECT_ACE_TYPE (0x5) -#define ACCESS_DENIED_OBJECT_ACE_TYPE (0x6) -#define SYSTEM_AUDIT_OBJECT_ACE_TYPE (0x7) -#define SYSTEM_ALARM_OBJECT_ACE_TYPE (0x8) -#define ACCESS_MAX_MS_OBJECT_ACE_TYPE (0x8) - -#define ACCESS_MAX_MS_V4_ACE_TYPE (0x8) -#define ACCESS_MAX_MS_ACE_TYPE (0x8) - -#define ACCESS_ALLOWED_CALLBACK_ACE_TYPE (0x9) -#define ACCESS_DENIED_CALLBACK_ACE_TYPE (0xA) -#define ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE (0xB) -#define ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE (0xC) -#define SYSTEM_AUDIT_CALLBACK_ACE_TYPE (0xD) -#define SYSTEM_ALARM_CALLBACK_ACE_TYPE (0xE) -#define SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE (0xF) -#define SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE (0x10) - -#define SYSTEM_MANDATORY_LABEL_ACE_TYPE (0x11) -#define SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE (0x12) -#define SYSTEM_SCOPED_POLICY_ID_ACE_TYPE (0x13) -#define SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE (0x14) -#define SYSTEM_ACCESS_FILTER_ACE_TYPE (0x15) -#define ACCESS_MAX_MS_V5_ACE_TYPE (0x15) - - -// -// The following are the inherit flags that go into the AceFlags field -// of an Ace header. -// - -#define OBJECT_INHERIT_ACE (0x1) -#define CONTAINER_INHERIT_ACE (0x2) -#define NO_PROPAGATE_INHERIT_ACE (0x4) -#define INHERIT_ONLY_ACE (0x8) -#define INHERITED_ACE (0x10) -#define VALID_INHERIT_FLAGS (0x1F) - - -// The following are the currently defined ACE flags that go into the -// AceFlags field of an ACE header. Each ACE type has its own set of -// AceFlags. -// -// - -// -// ACCESS_ALLOWED_ACE_TYPE -// -// These control whether the ACE is critical and cannot be removed. -// -// CRITICAL_ACE_FLAG - used only with access allowed ACE types to -// indicate that the ACE is critical and cannot be removed. -// - -#define CRITICAL_ACE_FLAG (0x20) - -// -// SYSTEM_AUDIT and SYSTEM_ALARM AceFlags -// -// These control the signaling of audit and alarms for success or failure. -// -// SUCCESSFUL_ACCESS_ACE_FLAG - used only with system audit and alarm ACE -// types to indicate that a message is generated for successful accesses. -// -// FAILED_ACCESS_ACE_FLAG - used only with system audit and alarm ACE types -// to indicate that a message is generated for failed accesses. -// - -#define SUCCESSFUL_ACCESS_ACE_FLAG (0x40) -#define FAILED_ACCESS_ACE_FLAG (0x80) - -// -// SYSTEM_ACCESS_FILTER_ACE AceFlags -// -// These control the behaviour of SYSTEM_ACCESS_FILTER_ACE . -// -// TRUST_PROTECTED_FILTER_ACE_FLAG - used only with SYSTEM_FILTERING_ACE_TYPE -// ACEs to indicate that this ACE may not be deleted/modified except when the, -// the current Trust Level dominates the one specified in the Ace SID. -// If this flag is set then the SID in the ACE should be a valid TrustLevelSid. -// - -#define TRUST_PROTECTED_FILTER_ACE_FLAG (0x40) - - -// -// We'll define the structure of the predefined ACE types. Pictorally -// the structure of the predefined ACE's is as follows: -// -// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 -// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -// +---------------+-------+-------+---------------+---------------+ -// | AceFlags | Resd |Inherit| AceSize | AceType | -// +---------------+-------+-------+---------------+---------------+ -// | Mask | -// +---------------------------------------------------------------+ -// | | -// + + -// | | -// + Sid + -// | | -// + + -// | | -// +---------------------------------------------------------------+ -// -// Mask is the access mask associated with the ACE. This is either the -// access allowed, access denied, audit, or alarm mask. -// -// Sid is the Sid associated with the ACE. -// - -// The following are the four predefined ACE types. - -// Examine the AceType field in the Header to determine -// which structure is appropriate to use for casting. - - -typedef struct _ACCESS_ALLOWED_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} ACCESS_ALLOWED_ACE; - -typedef ACCESS_ALLOWED_ACE *PACCESS_ALLOWED_ACE; - -typedef struct _ACCESS_DENIED_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} ACCESS_DENIED_ACE; -typedef ACCESS_DENIED_ACE *PACCESS_DENIED_ACE; - -typedef struct _SYSTEM_AUDIT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} SYSTEM_AUDIT_ACE; -typedef SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE; - -typedef struct _SYSTEM_ALARM_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} SYSTEM_ALARM_ACE; -typedef SYSTEM_ALARM_ACE *PSYSTEM_ALARM_ACE; - -typedef struct _SYSTEM_RESOURCE_ATTRIBUTE_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; - // Sid followed by CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 structure -} SYSTEM_RESOURCE_ATTRIBUTE_ACE, *PSYSTEM_RESOURCE_ATTRIBUTE_ACE; - -typedef struct _SYSTEM_SCOPED_POLICY_ID_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} SYSTEM_SCOPED_POLICY_ID_ACE, *PSYSTEM_SCOPED_POLICY_ID_ACE; - -typedef struct _SYSTEM_MANDATORY_LABEL_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} SYSTEM_MANDATORY_LABEL_ACE, *PSYSTEM_MANDATORY_LABEL_ACE; - -typedef struct _SYSTEM_PROCESS_TRUST_LABEL_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} SYSTEM_PROCESS_TRUST_LABEL_ACE, *PSYSTEM_PROCESS_TRUST_LABEL_ACE; - -typedef struct _SYSTEM_ACCESS_FILTER_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; - // Filter Condition follows the SID -} SYSTEM_ACCESS_FILTER_ACE, *PSYSTEM_ACCESS_FILTER_ACE; - -#define SYSTEM_MANDATORY_LABEL_NO_WRITE_UP 0x1 -#define SYSTEM_MANDATORY_LABEL_NO_READ_UP 0x2 -#define SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP 0x4 - -#define SYSTEM_MANDATORY_LABEL_VALID_MASK (SYSTEM_MANDATORY_LABEL_NO_WRITE_UP | \ - SYSTEM_MANDATORY_LABEL_NO_READ_UP | \ - SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP) - -// Placeholder value that allows all ranges -#define SYSTEM_PROCESS_TRUST_LABEL_VALID_MASK 0x00ffffff -#define SYSTEM_PROCESS_TRUST_NOCONSTRAINT_MASK 0xffffffff -#define SYSTEM_ACCESS_FILTER_VALID_MASK 0x00ffffff -#define SYSTEM_ACCESS_FILTER_NOCONSTRAINT_MASK 0xffffffff -// end_ntifs - - -typedef struct _ACCESS_ALLOWED_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE; - -typedef struct _ACCESS_DENIED_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE; - -typedef struct _SYSTEM_AUDIT_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} SYSTEM_AUDIT_OBJECT_ACE, *PSYSTEM_AUDIT_OBJECT_ACE; - -typedef struct _SYSTEM_ALARM_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} SYSTEM_ALARM_OBJECT_ACE, *PSYSTEM_ALARM_OBJECT_ACE; - -// -// Callback ace support in post Win2000. -// Resource managers can put their own data after Sidstart + Length of the sid -// - -typedef struct _ACCESS_ALLOWED_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; - // Opaque resource manager specific data -} ACCESS_ALLOWED_CALLBACK_ACE, *PACCESS_ALLOWED_CALLBACK_ACE; - -typedef struct _ACCESS_DENIED_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; - // Opaque resource manager specific data -} ACCESS_DENIED_CALLBACK_ACE, *PACCESS_DENIED_CALLBACK_ACE; - -typedef struct _SYSTEM_AUDIT_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; - // Opaque resource manager specific data -} SYSTEM_AUDIT_CALLBACK_ACE, *PSYSTEM_AUDIT_CALLBACK_ACE; - -typedef struct _SYSTEM_ALARM_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; - // Opaque resource manager specific data -} SYSTEM_ALARM_CALLBACK_ACE, *PSYSTEM_ALARM_CALLBACK_ACE; - -typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; - // Opaque resource manager specific data -} ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, *PACCESS_ALLOWED_CALLBACK_OBJECT_ACE; - -typedef struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; - // Opaque resource manager specific data -} ACCESS_DENIED_CALLBACK_OBJECT_ACE, *PACCESS_DENIED_CALLBACK_OBJECT_ACE; - -typedef struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; - // Opaque resource manager specific data -} SYSTEM_AUDIT_CALLBACK_OBJECT_ACE, *PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE; - -typedef struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; - // Opaque resource manager specific data -} SYSTEM_ALARM_CALLBACK_OBJECT_ACE, *PSYSTEM_ALARM_CALLBACK_OBJECT_ACE; - -// -// Currently define Flags for "OBJECT" ACE types. -// - -#define ACE_OBJECT_TYPE_PRESENT 0x1 -#define ACE_INHERITED_OBJECT_TYPE_PRESENT 0x2 - - -// -// The following declarations are used for setting and querying information -// about and ACL. First are the various information classes available to -// the user. -// - -typedef enum _ACL_INFORMATION_CLASS { - AclRevisionInformation = 1, - AclSizeInformation -} ACL_INFORMATION_CLASS; - -// -// This record is returned/sent if the user is requesting/setting the -// AclRevisionInformation -// - -typedef struct _ACL_REVISION_INFORMATION { - DWORD AclRevision; -} ACL_REVISION_INFORMATION; -typedef ACL_REVISION_INFORMATION *PACL_REVISION_INFORMATION; - -// -// This record is returned if the user is requesting AclSizeInformation -// - -typedef struct _ACL_SIZE_INFORMATION { - DWORD AceCount; - DWORD AclBytesInUse; - DWORD AclBytesFree; -} ACL_SIZE_INFORMATION; -typedef ACL_SIZE_INFORMATION *PACL_SIZE_INFORMATION; - - -//////////////////////////////////////////////////////////////////////// -// // -// SECURITY_DESCRIPTOR // -// // -//////////////////////////////////////////////////////////////////////// -// -// Define the Security Descriptor and related data types. -// This is an opaque data structure. -// - -// begin_wdm -// -// Current security descriptor revision value -// - -#define SECURITY_DESCRIPTOR_REVISION (1) -#define SECURITY_DESCRIPTOR_REVISION1 (1) - -// end_wdm -// begin_ntifs - -#define SECURITY_DESCRIPTOR_MIN_LENGTH (sizeof(SECURITY_DESCRIPTOR)) - - -typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; - -#define SE_OWNER_DEFAULTED (0x0001) -#define SE_GROUP_DEFAULTED (0x0002) -#define SE_DACL_PRESENT (0x0004) -#define SE_DACL_DEFAULTED (0x0008) -#define SE_SACL_PRESENT (0x0010) -#define SE_SACL_DEFAULTED (0x0020) -#define SE_DACL_AUTO_INHERIT_REQ (0x0100) -#define SE_SACL_AUTO_INHERIT_REQ (0x0200) -#define SE_DACL_AUTO_INHERITED (0x0400) -#define SE_SACL_AUTO_INHERITED (0x0800) -#define SE_DACL_PROTECTED (0x1000) -#define SE_SACL_PROTECTED (0x2000) -#define SE_RM_CONTROL_VALID (0x4000) -#define SE_SELF_RELATIVE (0x8000) - -// -// Where: -// -// SE_OWNER_DEFAULTED - This boolean flag, when set, indicates that the -// SID pointed to by the Owner field was provided by a -// defaulting mechanism rather than explicitly provided by the -// original provider of the security descriptor. This may -// affect the treatment of the SID with respect to inheritence -// of an owner. -// -// SE_GROUP_DEFAULTED - This boolean flag, when set, indicates that the -// SID in the Group field was provided by a defaulting mechanism -// rather than explicitly provided by the original provider of -// the security descriptor. This may affect the treatment of -// the SID with respect to inheritence of a primary group. -// -// SE_DACL_PRESENT - This boolean flag, when set, indicates that the -// security descriptor contains a discretionary ACL. If this -// flag is set and the Dacl field of the SECURITY_DESCRIPTOR is -// null, then a null ACL is explicitly being specified. -// -// SE_DACL_DEFAULTED - This boolean flag, when set, indicates that the -// ACL pointed to by the Dacl field was provided by a defaulting -// mechanism rather than explicitly provided by the original -// provider of the security descriptor. This may affect the -// treatment of the ACL with respect to inheritence of an ACL. -// This flag is ignored if the DaclPresent flag is not set. -// -// SE_SACL_PRESENT - This boolean flag, when set, indicates that the -// security descriptor contains a system ACL pointed to by the -// Sacl field. If this flag is set and the Sacl field of the -// SECURITY_DESCRIPTOR is null, then an empty (but present) -// ACL is being specified. -// -// SE_SACL_DEFAULTED - This boolean flag, when set, indicates that the -// ACL pointed to by the Sacl field was provided by a defaulting -// mechanism rather than explicitly provided by the original -// provider of the security descriptor. This may affect the -// treatment of the ACL with respect to inheritence of an ACL. -// This flag is ignored if the SaclPresent flag is not set. -// -// SE_SELF_RELATIVE - This boolean flag, when set, indicates that the -// security descriptor is in self-relative form. In this form, -// all fields of the security descriptor are contiguous in memory -// and all pointer fields are expressed as offsets from the -// beginning of the security descriptor. This form is useful -// for treating security descriptors as opaque data structures -// for transmission in communication protocol or for storage on -// secondary media. -// -// -// -// Pictorially the structure of a security descriptor is as follows: -// -// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 -// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -// +---------------------------------------------------------------+ -// | Control |Reserved1 (SBZ)| Revision | -// +---------------------------------------------------------------+ -// | Owner | -// +---------------------------------------------------------------+ -// | Group | -// +---------------------------------------------------------------+ -// | Sacl | -// +---------------------------------------------------------------+ -// | Dacl | -// +---------------------------------------------------------------+ -// -// In general, this data structure should be treated opaquely to ensure future -// compatibility. -// -// - -typedef struct _SECURITY_DESCRIPTOR_RELATIVE { - BYTE Revision; - BYTE Sbz1; - SECURITY_DESCRIPTOR_CONTROL Control; - DWORD Owner; - DWORD Group; - DWORD Sacl; - DWORD Dacl; - } SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE; - -typedef struct _SECURITY_DESCRIPTOR { - BYTE Revision; - BYTE Sbz1; - SECURITY_DESCRIPTOR_CONTROL Control; - PSID Owner; - PSID Group; - PACL Sacl; - PACL Dacl; - - } SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR; - - -typedef struct _SECURITY_OBJECT_AI_PARAMS { - DWORD Size; //Set to sizeof(SECURITY_OBJECT_AI_PARAMS) - DWORD ConstraintMask; -} SECURITY_OBJECT_AI_PARAMS, *PSECURITY_OBJECT_AI_PARAMS; - - -// end_ntifs - -// Where: -// -// Revision - Contains the revision level of the security -// descriptor. This allows this structure to be passed between -// systems or stored on disk even though it is expected to -// change in the future. -// -// Control - A set of flags which qualify the meaning of the -// security descriptor or individual fields of the security -// descriptor. -// -// Owner - is a pointer to an SID representing an object's owner. -// If this field is null, then no owner SID is present in the -// security descriptor. If the security descriptor is in -// self-relative form, then this field contains an offset to -// the SID, rather than a pointer. -// -// Group - is a pointer to an SID representing an object's primary -// group. If this field is null, then no primary group SID is -// present in the security descriptor. If the security descriptor -// is in self-relative form, then this field contains an offset to -// the SID, rather than a pointer. -// -// Sacl - is a pointer to a system ACL. This field value is only -// valid if the DaclPresent control flag is set. If the -// SaclPresent flag is set and this field is null, then a null -// ACL is specified. If the security descriptor is in -// self-relative form, then this field contains an offset to -// the ACL, rather than a pointer. -// -// Dacl - is a pointer to a discretionary ACL. This field value is -// only valid if the DaclPresent control flag is set. If the -// DaclPresent flag is set and this field is null, then a null -// ACL (unconditionally granting access) is specified. If the -// security descriptor is in self-relative form, then this field -// contains an offset to the ACL, rather than a pointer. -// - - - - -//////////////////////////////////////////////////////////////////////// -// // -// Object Type list for AccessCheckByType // -// // -//////////////////////////////////////////////////////////////////////// - -typedef struct _OBJECT_TYPE_LIST { - WORD Level; - WORD Sbz; - GUID *ObjectType; -} OBJECT_TYPE_LIST, *POBJECT_TYPE_LIST; - -// -// DS values for Level -// - -#define ACCESS_OBJECT_GUID 0 -#define ACCESS_PROPERTY_SET_GUID 1 -#define ACCESS_PROPERTY_GUID 2 - -#define ACCESS_MAX_LEVEL 4 - -// -// Parameters to NtAccessCheckByTypeAndAditAlarm -// - -typedef enum _AUDIT_EVENT_TYPE { - AuditEventObjectAccess, - AuditEventDirectoryServiceAccess -} AUDIT_EVENT_TYPE, *PAUDIT_EVENT_TYPE; - -#define AUDIT_ALLOW_NO_PRIVILEGE 0x1 - -// -// DS values for Source and ObjectTypeName -// - -#define ACCESS_DS_SOURCE_A "DS" -#define ACCESS_DS_SOURCE_W L"DS" -#define ACCESS_DS_OBJECT_TYPE_NAME_A "Directory Service Object" -#define ACCESS_DS_OBJECT_TYPE_NAME_W L"Directory Service Object" - -//////////////////////////////////////////////////////////////////////// -// // -// Privilege Related Data Structures // -// // -//////////////////////////////////////////////////////////////////////// - -// end_ntifs -// begin_wdm -// -// Privilege attributes -// - -#define SE_PRIVILEGE_ENABLED_BY_DEFAULT (0x00000001L) -#define SE_PRIVILEGE_ENABLED (0x00000002L) -#define SE_PRIVILEGE_REMOVED (0X00000004L) -#define SE_PRIVILEGE_USED_FOR_ACCESS (0x80000000L) - -#define SE_PRIVILEGE_VALID_ATTRIBUTES (SE_PRIVILEGE_ENABLED_BY_DEFAULT | \ - SE_PRIVILEGE_ENABLED | \ - SE_PRIVILEGE_REMOVED | \ - SE_PRIVILEGE_USED_FOR_ACCESS) - - -// -// Privilege Set Control flags -// - -#define PRIVILEGE_SET_ALL_NECESSARY (1) - -// -// Privilege Set - This is defined for a privilege set of one. -// If more than one privilege is needed, then this structure -// will need to be allocated with more space. -// -// Note: don't change this structure without fixing the INITIAL_PRIVILEGE_SET -// structure (defined in se.h) -// - -typedef struct _PRIVILEGE_SET { - DWORD PrivilegeCount; - DWORD Control; - LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; - } PRIVILEGE_SET, * PPRIVILEGE_SET; - - - - -// -// Values for different access granted\denied reasons: -// AccessReasonAceN = AccessReasonAce + N. -// AccessReasonPrivilegeN = AccessReasonPrivilege + N. -// - -#define ACCESS_REASON_TYPE_MASK 0x00ff0000 -#define ACCESS_REASON_DATA_MASK 0x0000ffff - -#define ACCESS_REASON_STAGING_MASK 0x80000000 -#define ACCESS_REASON_EXDATA_MASK 0x7f000000 - -typedef enum _ACCESS_REASON_TYPE{ - - AccessReasonNone = 0x00000000, // Indicate no reason for the bit. The bit may not be checked, or just no known reason. - - // - // The lowest 2 bytes store the index of the ACE that grant/deny this bit. - // If the corresponding access mask is zero, then it is deny ACE; otherwise, - // it is allow ACE. - // - AccessReasonAllowedAce = 0x00010000, // Granted a permission. - AccessReasonDeniedAce = 0x00020000, // Denied a permission. - - AccessReasonAllowedParentAce = 0x00030000, // Granted a permission from parent ACE - AccessReasonDeniedParentAce = 0x00040000, // Denied a permission from parent ACE - - AccessReasonNotGrantedByCape = 0x00050000, // A CAPE didn't grant the permission - AccessReasonNotGrantedByParentCape = 0x00060000, // A CAPE from the parent's SD didn't grant the permission - - AccessReasonNotGrantedToAppContainer = 0x00070000, // This is an AppContainer and no ACE granted the permission. - - AccessReasonMissingPrivilege = 0x00100000, - AccessReasonFromPrivilege = 0x00200000, - - - AccessReasonIntegrityLevel = 0x00300000, - - AccessReasonOwnership = 0x00400000, - - AccessReasonNullDacl = 0x00500000, - AccessReasonEmptyDacl = 0x00600000, - - AccessReasonNoSD = 0x00700000, - AccessReasonNoGrant = 0x00800000, // this access bit is not granted by any ACE. - - AccessReasonTrustLabel = 0x00900000, // The trust label ACE did not grant this access. - - AccessReasonFilterAce = 0x00a00000 // The filtering ACE did not grant this access -} -ACCESS_REASON_TYPE; - - // -// Structure to hold access denied\granted reason for every bit of ACCESS_MASK. -// There are 32-bits in ACCESS_MASK and only 27-bits are actually valid on -// return from AccessCheck because MAXIMUM_ALLOWED, GENERIC_READ, -// GENERIC_WRITE, GENERIC_EXECUTE, and GENERIC_ALL are never returned. -// -// The content in Data fields depends on the Access Reason, for example, -// if the reason is AccessReasonAce, the Data will be the ACE ID. -// If there are more than one reason (more than one bit is set), the array size -// of the Data is equal to the number of bits set (or number of reasons). -// The Data could be null for a particular reason. -// - -typedef DWORD ACCESS_REASON; - -typedef struct _ACCESS_REASONS{ - ACCESS_REASON Data[32]; -} ACCESS_REASONS, *PACCESS_REASONS; - - -/* -The following data structures are defined to consolidate various falvors of -access check functions. In particular for Windows 7, the new access check -function will enable security attribute check, plus returning the reason -for a access check result. - -The new access check function based on these data structures will -form the foundation to reimplement other flavors of access check -functions. - -*/ - -// -// Structure to hold pointer to security descriptor and its unique id, which -// can be used for caching access check results. -// (NOTE NOTE) The cache key can be constructed by SecurityDescriptorId, Token and -// PrincipalSelfSid. Watch how GenericMapping affects the cache results. -// -#define SE_SECURITY_DESCRIPTOR_FLAG_NO_OWNER_ACE 0x00000001 -#define SE_SECURITY_DESCRIPTOR_FLAG_NO_LABEL_ACE 0x00000002 -#define SE_SECURITY_DESCRIPTOR_FLAG_NO_ACCESS_FILTER_ACE 0x00000004 -#define SE_SECURITY_DESCRIPTOR_VALID_FLAGS 0x00000007 - -#define SE_ACCESS_CHECK_FLAG_NO_LEARNING_MODE_LOGGING 0x00000008 -#define SE_ACCESS_CHECK_VALID_FLAGS 0x00000008 - - -typedef struct _SE_SECURITY_DESCRIPTOR -{ - DWORD Size; - DWORD Flags; - PSECURITY_DESCRIPTOR SecurityDescriptor; -} SE_SECURITY_DESCRIPTOR, *PSE_SECURITY_DESCRIPTOR; - -typedef struct _SE_ACCESS_REQUEST -{ - DWORD Size; - PSE_SECURITY_DESCRIPTOR SeSecurityDescriptor; - ACCESS_MASK DesiredAccess; - ACCESS_MASK PreviouslyGrantedAccess; - PSID PrincipalSelfSid; // Need to watch how this field affects the cache. - PGENERIC_MAPPING GenericMapping; - DWORD ObjectTypeListCount; - POBJECT_TYPE_LIST ObjectTypeList; -} SE_ACCESS_REQUEST, *PSE_ACCESS_REQUEST; - - -typedef struct _SE_ACCESS_REPLY -{ - DWORD Size; - DWORD ResultListCount; // Indicate the array size of GrantedAccess and AccessStatus, it only can be either 1 or ObjectTypeListCount. - PACCESS_MASK GrantedAccess; - PDWORD AccessStatus; - PACCESS_REASONS AccessReason; - PPRIVILEGE_SET* Privileges; -} SE_ACCESS_REPLY, *PSE_ACCESS_REPLY; - - -//////////////////////////////////////////////////////////////////////// -// // -// NT Defined Privileges // -// // -//////////////////////////////////////////////////////////////////////// - -#define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege") -#define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege") -#define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege") -#define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege") -#define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege") -#define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege") -#define SE_TCB_NAME TEXT("SeTcbPrivilege") -#define SE_SECURITY_NAME TEXT("SeSecurityPrivilege") -#define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege") -#define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege") -#define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege") -#define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege") -#define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege") -#define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege") -#define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege") -#define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege") -#define SE_BACKUP_NAME TEXT("SeBackupPrivilege") -#define SE_RESTORE_NAME TEXT("SeRestorePrivilege") -#define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege") -#define SE_DEBUG_NAME TEXT("SeDebugPrivilege") -#define SE_AUDIT_NAME TEXT("SeAuditPrivilege") -#define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege") -#define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege") -#define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege") -#define SE_UNDOCK_NAME TEXT("SeUndockPrivilege") -#define SE_SYNC_AGENT_NAME TEXT("SeSyncAgentPrivilege") -#define SE_ENABLE_DELEGATION_NAME TEXT("SeEnableDelegationPrivilege") -#define SE_MANAGE_VOLUME_NAME TEXT("SeManageVolumePrivilege") -#define SE_IMPERSONATE_NAME TEXT("SeImpersonatePrivilege") -#define SE_CREATE_GLOBAL_NAME TEXT("SeCreateGlobalPrivilege") -#define SE_TRUSTED_CREDMAN_ACCESS_NAME TEXT("SeTrustedCredManAccessPrivilege") -#define SE_RELABEL_NAME TEXT("SeRelabelPrivilege") -#define SE_INC_WORKING_SET_NAME TEXT("SeIncreaseWorkingSetPrivilege") -#define SE_TIME_ZONE_NAME TEXT("SeTimeZonePrivilege") -#define SE_CREATE_SYMBOLIC_LINK_NAME TEXT("SeCreateSymbolicLinkPrivilege") -#define SE_DELEGATE_SESSION_USER_IMPERSONATE_NAME TEXT("SeDelegateSessionUserImpersonatePrivilege") - -// begin_ntosifs - -// -// List Of String Capabilities. -// -#define SE_ACTIVATE_AS_USER_CAPABILITY L"activateAsUser" -#define SE_CONSTRAINED_IMPERSONATION_CAPABILITY L"constrainedImpersonation" -#define SE_SESSION_IMPERSONATION_CAPABILITY L"sessionImpersonation" -#define SE_MUMA_CAPABILITY L"muma" -#define SE_DEVELOPMENT_MODE_NETWORK_CAPABILITY L"developmentModeNetwork" - -// end_ntosifs - - - -//////////////////////////////////////////////////////////////////// -// // -// Security Quality Of Service // -// // -// // -//////////////////////////////////////////////////////////////////// - -// begin_wdm -// -// Impersonation Level -// -// Impersonation level is represented by a pair of bits in Windows. -// If a new impersonation level is added or lowest value is changed from -// 0 to something else, fix the Windows CreateFile call. -// - -typedef enum _SECURITY_IMPERSONATION_LEVEL { - SecurityAnonymous, - SecurityIdentification, - SecurityImpersonation, - SecurityDelegation - } SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL; - -#define SECURITY_MAX_IMPERSONATION_LEVEL SecurityDelegation -#define SECURITY_MIN_IMPERSONATION_LEVEL SecurityAnonymous -#define DEFAULT_IMPERSONATION_LEVEL SecurityImpersonation -#define VALID_IMPERSONATION_LEVEL(L) (((L) >= SECURITY_MIN_IMPERSONATION_LEVEL) && ((L) <= SECURITY_MAX_IMPERSONATION_LEVEL)) - - -//////////////////////////////////////////////////////////////////// -// // -// Token Object Definitions // -// // -// // -//////////////////////////////////////////////////////////////////// - -// begin_access - -// -// Token Specific Access Rights. -// - -#define TOKEN_ASSIGN_PRIMARY (0x0001) -#define TOKEN_DUPLICATE (0x0002) -#define TOKEN_IMPERSONATE (0x0004) -#define TOKEN_QUERY (0x0008) -#define TOKEN_QUERY_SOURCE (0x0010) -#define TOKEN_ADJUST_PRIVILEGES (0x0020) -#define TOKEN_ADJUST_GROUPS (0x0040) -#define TOKEN_ADJUST_DEFAULT (0x0080) -#define TOKEN_ADJUST_SESSIONID (0x0100) - -#define TOKEN_ALL_ACCESS_P (STANDARD_RIGHTS_REQUIRED |\ - TOKEN_ASSIGN_PRIMARY |\ - TOKEN_DUPLICATE |\ - TOKEN_IMPERSONATE |\ - TOKEN_QUERY |\ - TOKEN_QUERY_SOURCE |\ - TOKEN_ADJUST_PRIVILEGES |\ - TOKEN_ADJUST_GROUPS |\ - TOKEN_ADJUST_DEFAULT ) - -#if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT))) -#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P |\ - TOKEN_ADJUST_SESSIONID ) -#else -#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P) -#endif - -#define TOKEN_READ (STANDARD_RIGHTS_READ |\ - TOKEN_QUERY) - - -#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\ - TOKEN_ADJUST_PRIVILEGES |\ - TOKEN_ADJUST_GROUPS |\ - TOKEN_ADJUST_DEFAULT) - -#define TOKEN_EXECUTE (STANDARD_RIGHTS_EXECUTE) - -#define TOKEN_TRUST_CONSTRAINT_MASK (STANDARD_RIGHTS_READ | \ - TOKEN_QUERY |\ - TOKEN_QUERY_SOURCE ) - -#if (NTDDI_VERSION >= NTDDI_WIN8) - -#define TOKEN_ACCESS_PSEUDO_HANDLE_WIN8 (TOKEN_QUERY | TOKEN_QUERY_SOURCE) - -#define TOKEN_ACCESS_PSEUDO_HANDLE TOKEN_ACCESS_PSEUDO_HANDLE_WIN8 - -#endif -// -// end_access -// -// -// Token Types -// - -typedef enum _TOKEN_TYPE { - TokenPrimary = 1, - TokenImpersonation - } TOKEN_TYPE; -typedef TOKEN_TYPE *PTOKEN_TYPE; - -// -// Token elevation values describe the relative strength of a given token. -// A full token is a token with all groups and privileges to which the principal -// is authorized. A limited token is one with some groups or privileges removed. -// - -typedef enum _TOKEN_ELEVATION_TYPE { - TokenElevationTypeDefault = 1, - TokenElevationTypeFull, - TokenElevationTypeLimited, -} TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE; - -// -// Token Information Classes. -// - - -typedef enum _TOKEN_INFORMATION_CLASS { - TokenUser = 1, - TokenGroups, - TokenPrivileges, - TokenOwner, - TokenPrimaryGroup, - TokenDefaultDacl, - TokenSource, - TokenType, - TokenImpersonationLevel, - TokenStatistics, - TokenRestrictedSids, - TokenSessionId, - TokenGroupsAndPrivileges, - TokenSessionReference, - TokenSandBoxInert, - TokenAuditPolicy, - TokenOrigin, - TokenElevationType, - TokenLinkedToken, - TokenElevation, - TokenHasRestrictions, - TokenAccessInformation, - TokenVirtualizationAllowed, - TokenVirtualizationEnabled, - TokenIntegrityLevel, - TokenUIAccess, - TokenMandatoryPolicy, - TokenLogonSid, - TokenIsAppContainer, - TokenCapabilities, - TokenAppContainerSid, - TokenAppContainerNumber, - TokenUserClaimAttributes, - TokenDeviceClaimAttributes, - TokenRestrictedUserClaimAttributes, - TokenRestrictedDeviceClaimAttributes, - TokenDeviceGroups, - TokenRestrictedDeviceGroups, - TokenSecurityAttributes, - TokenIsRestricted, - TokenProcessTrustLevel, - TokenPrivateNameSpace, - TokenSingletonAttributes, - TokenBnoIsolation, - TokenChildProcessFlags, - TokenIsLessPrivilegedAppContainer, - TokenIsSandboxed, - TokenOriginatingProcessTrustLevel, - MaxTokenInfoClass // MaxTokenInfoClass should always be the last enum -} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS; - -// -// Token information class structures -// - -typedef struct _TOKEN_USER { - SID_AND_ATTRIBUTES User; -} TOKEN_USER, *PTOKEN_USER; - -#ifndef MIDL_PASS - -typedef struct _SE_TOKEN_USER { - union { - TOKEN_USER TokenUser; - SID_AND_ATTRIBUTES User; - } DUMMYUNIONNAME; - - union { - SID Sid; - BYTE Buffer[SECURITY_MAX_SID_SIZE]; - } DUMMYUNIONNAME2; - -} SE_TOKEN_USER , PSE_TOKEN_USER; - -#define TOKEN_USER_MAX_SIZE (sizeof(TOKEN_USER) + SECURITY_MAX_SID_SIZE) - -#endif - - -typedef struct _TOKEN_GROUPS { - DWORD GroupCount; -#ifdef MIDL_PASS - [size_is(GroupCount)] SID_AND_ATTRIBUTES Groups[*]; -#else // MIDL_PASS - SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; -#endif // MIDL_PASS -} TOKEN_GROUPS, *PTOKEN_GROUPS; - -typedef struct _TOKEN_PRIVILEGES { - DWORD PrivilegeCount; - LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; -} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES; - - -typedef struct _TOKEN_OWNER { - PSID Owner; -} TOKEN_OWNER, *PTOKEN_OWNER; - -#ifndef MIDL_PASS -#define TOKEN_OWNER_MAX_SIZE (sizeof(TOKEN_OWNER) + SECURITY_MAX_SID_SIZE) -#endif - -typedef struct _TOKEN_PRIMARY_GROUP { - PSID PrimaryGroup; -} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP; - - -typedef struct _TOKEN_DEFAULT_DACL { - PACL DefaultDacl; -} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL; - -typedef struct _TOKEN_USER_CLAIMS { - PCLAIMS_BLOB UserClaims; -} TOKEN_USER_CLAIMS, *PTOKEN_USER_CLAIMS; - -typedef struct _TOKEN_DEVICE_CLAIMS { - PCLAIMS_BLOB DeviceClaims; -} TOKEN_DEVICE_CLAIMS, *PTOKEN_DEVICE_CLAIMS; - -typedef struct _TOKEN_GROUPS_AND_PRIVILEGES { - DWORD SidCount; - DWORD SidLength; - PSID_AND_ATTRIBUTES Sids; - DWORD RestrictedSidCount; - DWORD RestrictedSidLength; - PSID_AND_ATTRIBUTES RestrictedSids; - DWORD PrivilegeCount; - DWORD PrivilegeLength; - PLUID_AND_ATTRIBUTES Privileges; - LUID AuthenticationId; -} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES; - -typedef struct _TOKEN_LINKED_TOKEN { - HANDLE LinkedToken; -} TOKEN_LINKED_TOKEN, *PTOKEN_LINKED_TOKEN; - -typedef struct _TOKEN_ELEVATION { - DWORD TokenIsElevated; -} TOKEN_ELEVATION, *PTOKEN_ELEVATION; - -typedef struct _TOKEN_MANDATORY_LABEL { - SID_AND_ATTRIBUTES Label; -} TOKEN_MANDATORY_LABEL, *PTOKEN_MANDATORY_LABEL; - -#define TOKEN_MANDATORY_POLICY_OFF 0x0 -#define TOKEN_MANDATORY_POLICY_NO_WRITE_UP 0x1 -#define TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN 0x2 - -#define TOKEN_MANDATORY_POLICY_VALID_MASK (TOKEN_MANDATORY_POLICY_NO_WRITE_UP | \ - TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN) - -#ifndef MIDL_PASS -#define TOKEN_INTEGRITY_LEVEL_MAX_SIZE ((((DWORD)(sizeof(TOKEN_MANDATORY_LABEL)) + sizeof(PVOID) - 1) & ~(sizeof(PVOID)-1)) + SECURITY_MAX_SID_SIZE) -#endif - -typedef struct _TOKEN_MANDATORY_POLICY { - DWORD Policy; -} TOKEN_MANDATORY_POLICY, *PTOKEN_MANDATORY_POLICY; - -typedef PVOID PSECURITY_ATTRIBUTES_OPAQUE; - -typedef struct _TOKEN_ACCESS_INFORMATION { - PSID_AND_ATTRIBUTES_HASH SidHash; - PSID_AND_ATTRIBUTES_HASH RestrictedSidHash; - PTOKEN_PRIVILEGES Privileges; - LUID AuthenticationId; - TOKEN_TYPE TokenType; - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; - TOKEN_MANDATORY_POLICY MandatoryPolicy; - DWORD Flags; - DWORD AppContainerNumber; - PSID PackageSid; - PSID_AND_ATTRIBUTES_HASH CapabilitiesHash; - PSID TrustLevelSid; - PSECURITY_ATTRIBUTES_OPAQUE SecurityAttributes; -} TOKEN_ACCESS_INFORMATION, *PTOKEN_ACCESS_INFORMATION; - -// -// Valid bits for each TOKEN_AUDIT_POLICY policy mask field. -// - -#define POLICY_AUDIT_SUBCATEGORY_COUNT (59) - -typedef struct _TOKEN_AUDIT_POLICY { - BYTE PerUserPolicy[((POLICY_AUDIT_SUBCATEGORY_COUNT) >> 1) + 1]; -} TOKEN_AUDIT_POLICY, *PTOKEN_AUDIT_POLICY; - -#define TOKEN_SOURCE_LENGTH 8 - -typedef struct _TOKEN_SOURCE { - CHAR SourceName[TOKEN_SOURCE_LENGTH]; - LUID SourceIdentifier; -} TOKEN_SOURCE, *PTOKEN_SOURCE; - - -typedef struct _TOKEN_STATISTICS { - LUID TokenId; - LUID AuthenticationId; - LARGE_INTEGER ExpirationTime; - TOKEN_TYPE TokenType; - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; - DWORD DynamicCharged; - DWORD DynamicAvailable; - DWORD GroupCount; - DWORD PrivilegeCount; - LUID ModifiedId; -} TOKEN_STATISTICS, *PTOKEN_STATISTICS; - - - -typedef struct _TOKEN_CONTROL { - LUID TokenId; - LUID AuthenticationId; - LUID ModifiedId; - TOKEN_SOURCE TokenSource; -} TOKEN_CONTROL, *PTOKEN_CONTROL; - -typedef struct _TOKEN_ORIGIN { - LUID OriginatingLogonSession ; -} TOKEN_ORIGIN, * PTOKEN_ORIGIN ; - - -typedef enum _MANDATORY_LEVEL { - MandatoryLevelUntrusted = 0, - MandatoryLevelLow, - MandatoryLevelMedium, - MandatoryLevelHigh, - MandatoryLevelSystem, - MandatoryLevelSecureProcess, - MandatoryLevelCount -} MANDATORY_LEVEL, *PMANDATORY_LEVEL; - -typedef struct _TOKEN_APPCONTAINER_INFORMATION { - PSID TokenAppContainer; -} TOKEN_APPCONTAINER_INFORMATION, *PTOKEN_APPCONTAINER_INFORMATION; - -#ifndef MIDL_PASS -#define TOKEN_APPCONTAINER_SID_MAX_SIZE (sizeof(TOKEN_APPCONTAINER_INFORMATION) + SECURITY_MAX_SID_SIZE) -#endif - -typedef struct _TOKEN_SID_INFORMATION { - PSID Sid; -} TOKEN_SID_INFORMATION, *PTOKEN_SID_INFORMATION; - -typedef struct _TOKEN_BNO_ISOLATION_INFORMATION { - PWSTR IsolationPrefix; - BOOLEAN IsolationEnabled; -} TOKEN_BNO_ISOLATION_INFORMATION, *PTOKEN_BNO_ISOLATION_INFORMATION; - -// -// *** Claim Security attributes *** -// -// These #defines and data structures (almost) exactly mirror -// the Token_XXX definitions (except for PWSTR/PUNICODE changes) -// in ntseapi.w as well as AUTHZ_XXX in authz.w. -// Keep them in sync. -// -// -// Security attribute data types ... -// - -#define CLAIM_SECURITY_ATTRIBUTE_TYPE_INVALID 0x00 - -#define CLAIM_SECURITY_ATTRIBUTE_TYPE_INT64 0x01 -#define CLAIM_SECURITY_ATTRIBUTE_TYPE_UINT64 0x02 - -// -// Case insensitive attribute value string by default. -// Unless the flag CLAIM_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE -// is set indicating otherwise. -// - -#define CLAIM_SECURITY_ATTRIBUTE_TYPE_STRING 0x03 - -// -// Fully-qualified binary name. -// - -typedef struct _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE { - DWORD64 Version; - PWSTR Name; -} CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE, *PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE; - -#define CLAIM_SECURITY_ATTRIBUTE_TYPE_FQBN 0x04 - -#define CLAIM_SECURITY_ATTRIBUTE_TYPE_SID 0x05 - -#define CLAIM_SECURITY_ATTRIBUTE_TYPE_BOOLEAN 0x06 - - -typedef struct _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE { - PVOID pValue; // Pointer is BYTE aligned. - DWORD ValueLength; // In bytes -} CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE, - *PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE; - -#define CLAIM_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING 0x10 - -// -// Attribute Flags -// - -// -// Attribute must not be inherited across process spawns. -// - -#define CLAIM_SECURITY_ATTRIBUTE_NON_INHERITABLE 0x0001 - - -// -// Attribute value is compared in a case sensitive way. It is valid with string value -// or composite type containing string value. For other types of value, this flag -// will be ignored. Currently, it is valid with the two types: -// CLAIM_SECURITY_ATTRIBUTE_TYPE_STRING and CLAIM_SECURITY_ATTRIBUTE_TYPE_FQBN. -// -#define CLAIM_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE 0x0002 - -// -// Attribute is considered only for Deny Aces. -// - -#define CLAIM_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY 0x0004 - -// -// Attribute is disabled by default. -// - -#define CLAIM_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT 0x0008 - -// -// Attribute is disabled. -// - -#define CLAIM_SECURITY_ATTRIBUTE_DISABLED 0x0010 - -// -// Attribute is mandatory. -// - -#define CLAIM_SECURITY_ATTRIBUTE_MANDATORY 0x0020 - - -#define CLAIM_SECURITY_ATTRIBUTE_VALID_FLAGS ( \ - CLAIM_SECURITY_ATTRIBUTE_NON_INHERITABLE | \ - CLAIM_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE | \ - CLAIM_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY | \ - CLAIM_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT | \ - CLAIM_SECURITY_ATTRIBUTE_DISABLED | \ - CLAIM_SECURITY_ATTRIBUTE_MANDATORY ) - - -// -// Reserve upper 16 bits for custom flags. These should be preserved but not -// validated as they do not affect security in any way. -// -#define CLAIM_SECURITY_ATTRIBUTE_CUSTOM_FLAGS 0xFFFF0000 - -// -// An individual security attribute. -// - - -typedef struct _CLAIM_SECURITY_ATTRIBUTE_V1 { - - // - // Name of the attribute. - // Case insensitive Unicode string. - // - - PWSTR Name; - - // - // Data type of attribute. - // - - WORD ValueType; - - // - // Pass 0 in a set operation and check for 0 in - // a get operation. - // - - WORD Reserved; - - // - // Attribute Flags - // - - DWORD Flags; - - // - // Number of values. - // - - DWORD ValueCount; - - // - // The actual value itself. - // - - union { - PLONG64 pInt64; - PDWORD64 pUint64; - PWSTR *ppString; - PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE pFqbn; - PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE pOctetString; - } Values; -} CLAIM_SECURITY_ATTRIBUTE_V1, *PCLAIM_SECURITY_ATTRIBUTE_V1; - -// -// Relative form of the security attribute. -// - - -typedef struct _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 { - - // - // Name of the attribute. - // Offset from beginning of structure. - // - - DWORD Name; - - // - // Data type of attribute. - // - - WORD ValueType; - - // - // Pass 0 in a set operation and check for 0 in - // a get operation. - // - - WORD Reserved; - - // - // Attribute Flags - // - - DWORD Flags; - - // - // Number of values. - // - - DWORD ValueCount; - - // - // The actual value itself. - // - - union { - DWORD pInt64[ANYSIZE_ARRAY]; - DWORD pUint64[ANYSIZE_ARRAY]; - DWORD ppString[ANYSIZE_ARRAY]; - DWORD pFqbn[ANYSIZE_ARRAY]; - DWORD pOctetString[ANYSIZE_ARRAY]; - } Values; -} CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1, *PCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1; - - -// -// Set of security attributes. -// - -// -// Versioning. The interpretation of the pointers in the -// Attribute field below is dependent on the version field. -// -// Get operations return the version while the set operation -// MUST specify the version of the data structure passed in. -// - -#define CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1 1 - -#define CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION \ - CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1 - - - -typedef struct _CLAIM_SECURITY_ATTRIBUTES_INFORMATION { - - // - // MUST BE first. - // - - WORD Version; - - // - // Pass 0 in set operations and ignore on get operations. - // - - WORD Reserved; - - DWORD AttributeCount; - union { - PCLAIM_SECURITY_ATTRIBUTE_V1 pAttributeV1; - } Attribute; -} CLAIM_SECURITY_ATTRIBUTES_INFORMATION, *PCLAIM_SECURITY_ATTRIBUTES_INFORMATION; - -// -// Security Tracking Mode -// - -#define SECURITY_DYNAMIC_TRACKING (TRUE) -#define SECURITY_STATIC_TRACKING (FALSE) - -typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, - * PSECURITY_CONTEXT_TRACKING_MODE; - - - -// -// Quality Of Service -// - -typedef struct _SECURITY_QUALITY_OF_SERVICE { - DWORD Length; - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; - SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; - BOOLEAN EffectiveOnly; - } SECURITY_QUALITY_OF_SERVICE, * PSECURITY_QUALITY_OF_SERVICE; - - -// -// Used to represent information related to a thread impersonation -// - -typedef struct _SE_IMPERSONATION_STATE { - PACCESS_TOKEN Token; - BOOLEAN CopyOnOpen; - BOOLEAN EffectiveOnly; - SECURITY_IMPERSONATION_LEVEL Level; -} SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE; - -#define DISABLE_MAX_PRIVILEGE 0x1 -#define SANDBOX_INERT 0x2 -#define LUA_TOKEN 0x4 -#define WRITE_RESTRICTED 0x8 - -typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION; - -#define OWNER_SECURITY_INFORMATION (0x00000001L) -#define GROUP_SECURITY_INFORMATION (0x00000002L) -#define DACL_SECURITY_INFORMATION (0x00000004L) -#define SACL_SECURITY_INFORMATION (0x00000008L) -#define LABEL_SECURITY_INFORMATION (0x00000010L) -#define ATTRIBUTE_SECURITY_INFORMATION (0x00000020L) -#define SCOPE_SECURITY_INFORMATION (0x00000040L) -#define PROCESS_TRUST_LABEL_SECURITY_INFORMATION (0x00000080L) -#define ACCESS_FILTER_SECURITY_INFORMATION (0x00000100L) -#define BACKUP_SECURITY_INFORMATION (0x00010000L) - -#define PROTECTED_DACL_SECURITY_INFORMATION (0x80000000L) -#define PROTECTED_SACL_SECURITY_INFORMATION (0x40000000L) -#define UNPROTECTED_DACL_SECURITY_INFORMATION (0x20000000L) -#define UNPROTECTED_SACL_SECURITY_INFORMATION (0x10000000L) - - -// -// Base signing levels. -// - -typedef BYTE SE_SIGNING_LEVEL, *PSE_SIGNING_LEVEL; - -#define SE_SIGNING_LEVEL_UNCHECKED 0x00000000 -#define SE_SIGNING_LEVEL_UNSIGNED 0x00000001 -#define SE_SIGNING_LEVEL_ENTERPRISE 0x00000002 -#define SE_SIGNING_LEVEL_CUSTOM_1 0x00000003 -#define SE_SIGNING_LEVEL_DEVELOPER SE_SIGNING_LEVEL_CUSTOM_1 -#define SE_SIGNING_LEVEL_AUTHENTICODE 0x00000004 -#define SE_SIGNING_LEVEL_CUSTOM_2 0x00000005 -#define SE_SIGNING_LEVEL_STORE 0x00000006 -#define SE_SIGNING_LEVEL_CUSTOM_3 0x00000007 -#define SE_SIGNING_LEVEL_ANTIMALWARE SE_SIGNING_LEVEL_CUSTOM_3 -#define SE_SIGNING_LEVEL_MICROSOFT 0x00000008 -#define SE_SIGNING_LEVEL_CUSTOM_4 0x00000009 -#define SE_SIGNING_LEVEL_CUSTOM_5 0x0000000A -#define SE_SIGNING_LEVEL_DYNAMIC_CODEGEN 0x0000000B -#define SE_SIGNING_LEVEL_WINDOWS 0x0000000C -#define SE_SIGNING_LEVEL_CUSTOM_7 0x0000000D -#define SE_SIGNING_LEVEL_WINDOWS_TCB 0x0000000E -#define SE_SIGNING_LEVEL_CUSTOM_6 0x0000000F - -// -// Image signature types. -// - -typedef enum _SE_IMAGE_SIGNATURE_TYPE -{ - SeImageSignatureNone = 0, - SeImageSignatureEmbedded, - SeImageSignatureCache, - SeImageSignatureCatalogCached, - SeImageSignatureCatalogNotCached, - SeImageSignatureCatalogHint, - SeImageSignaturePackageCatalog, -} SE_IMAGE_SIGNATURE_TYPE, *PSE_IMAGE_SIGNATURE_TYPE; - - -// -// Learning Mode Types. -// - -typedef enum _SE_LEARNING_MODE_DATA_TYPE { - SeLearningModeInvalidType = 0, - SeLearningModeSettings, - SeLearningModeMax -} SE_LEARNING_MODE_DATA_TYPE; - -#define SE_LEARNING_MODE_FLAG_PERMISSIVE 0x00000001 - -typedef struct _SECURITY_CAPABILITIES { -#ifdef MIDL_PASS - PISID AppContainerSid; - [size_is(CapabilityCount)] PSID_AND_ATTRIBUTES Capabilities; -#else // MIDL_PASS - PSID AppContainerSid; - PSID_AND_ATTRIBUTES Capabilities; -#endif // MIDL_PASS - DWORD CapabilityCount; - DWORD Reserved; -} SECURITY_CAPABILITIES, *PSECURITY_CAPABILITIES, *LPSECURITY_CAPABILITIES; - - -#define PROCESS_TERMINATE (0x0001) -#define PROCESS_CREATE_THREAD (0x0002) -#define PROCESS_SET_SESSIONID (0x0004) -#define PROCESS_VM_OPERATION (0x0008) -#define PROCESS_VM_READ (0x0010) -#define PROCESS_VM_WRITE (0x0020) -#define PROCESS_DUP_HANDLE (0x0040) -#define PROCESS_CREATE_PROCESS (0x0080) -#define PROCESS_SET_QUOTA (0x0100) -#define PROCESS_SET_INFORMATION (0x0200) -#define PROCESS_QUERY_INFORMATION (0x0400) -#define PROCESS_SUSPEND_RESUME (0x0800) -#define PROCESS_QUERY_LIMITED_INFORMATION (0x1000) -#define PROCESS_SET_LIMITED_INFORMATION (0x2000) -#if (NTDDI_VERSION >= NTDDI_VISTA) -#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ - 0xFFFF) -#else -#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ - 0xFFF) -#endif - -#define THREAD_TERMINATE (0x0001) -#define THREAD_SUSPEND_RESUME (0x0002) -#define THREAD_GET_CONTEXT (0x0008) -#define THREAD_SET_CONTEXT (0x0010) -#define THREAD_QUERY_INFORMATION (0x0040) -#define THREAD_SET_INFORMATION (0x0020) -#define THREAD_SET_THREAD_TOKEN (0x0080) -#define THREAD_IMPERSONATE (0x0100) -#define THREAD_DIRECT_IMPERSONATION (0x0200) -// begin_wdm -#define THREAD_SET_LIMITED_INFORMATION (0x0400) // winnt -#define THREAD_QUERY_LIMITED_INFORMATION (0x0800) // winnt -#define THREAD_RESUME (0x1000) // winnt -#if (NTDDI_VERSION >= NTDDI_VISTA) -#define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ - 0xFFFF) -#else -#define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ - 0x3FF) -#endif -#define JOB_OBJECT_ASSIGN_PROCESS (0x0001) -#define JOB_OBJECT_SET_ATTRIBUTES (0x0002) -#define JOB_OBJECT_QUERY (0x0004) -#define JOB_OBJECT_TERMINATE (0x0008) -#define JOB_OBJECT_SET_SECURITY_ATTRIBUTES (0x0010) -#define JOB_OBJECT_IMPERSONATE (0x0020) -#define JOB_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ - 0x3F ) - -// end_access - -typedef struct _JOB_SET_ARRAY { - HANDLE JobHandle; // Handle to job object to insert - DWORD MemberLevel; // Level of this job in the set. Must be > 0. Can be sparse. - DWORD Flags; // Unused. Must be zero -} JOB_SET_ARRAY, *PJOB_SET_ARRAY; - -#define FLS_MAXIMUM_AVAILABLE 4080 -#define TLS_MINIMUM_AVAILABLE 64 - -typedef struct _EXCEPTION_REGISTRATION_RECORD { - struct _EXCEPTION_REGISTRATION_RECORD *Next; - PEXCEPTION_ROUTINE Handler; -} EXCEPTION_REGISTRATION_RECORD; - -typedef EXCEPTION_REGISTRATION_RECORD *PEXCEPTION_REGISTRATION_RECORD; - -typedef struct _NT_TIB { - struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; - PVOID StackBase; - PVOID StackLimit; - PVOID SubSystemTib; -#if defined(_MSC_EXTENSIONS) - union { - PVOID FiberData; - DWORD Version; - }; -#else - PVOID FiberData; -#endif - PVOID ArbitraryUserPointer; - struct _NT_TIB *Self; -} NT_TIB; -typedef NT_TIB *PNT_TIB; - -// -// 32 and 64 bit specific version for wow64 and the debugger -// -typedef struct _NT_TIB32 { - DWORD ExceptionList; - DWORD StackBase; - DWORD StackLimit; - DWORD SubSystemTib; - -#if defined(_MSC_EXTENSIONS) - union { - DWORD FiberData; - DWORD Version; - }; -#else - DWORD FiberData; -#endif - - DWORD ArbitraryUserPointer; - DWORD Self; -} NT_TIB32, *PNT_TIB32; - -typedef struct _NT_TIB64 { - DWORD64 ExceptionList; - DWORD64 StackBase; - DWORD64 StackLimit; - DWORD64 SubSystemTib; - -#if defined(_MSC_EXTENSIONS) - union { - DWORD64 FiberData; - DWORD Version; - }; - -#else - DWORD64 FiberData; -#endif - - DWORD64 ArbitraryUserPointer; - DWORD64 Self; -} NT_TIB64, *PNT_TIB64; - - - -#define THREAD_DYNAMIC_CODE_ALLOW 1 // Opt-out of dynamic code generation. - -#define THREAD_BASE_PRIORITY_LOWRT 15 // value that gets a thread to LowRealtime-1 -#define THREAD_BASE_PRIORITY_MAX 2 // maximum thread base priority boost -#define THREAD_BASE_PRIORITY_MIN (-2) // minimum thread base priority boost -#define THREAD_BASE_PRIORITY_IDLE (-15) // value that gets a thread to idle - -typedef struct _UMS_CREATE_THREAD_ATTRIBUTES { - DWORD UmsVersion; - PVOID UmsContext; - PVOID UmsCompletionList; -} UMS_CREATE_THREAD_ATTRIBUTES, *PUMS_CREATE_THREAD_ATTRIBUTES; - -typedef struct _WOW64_ARCHITECTURE_INFORMATION { - DWORD Machine : 16; - DWORD KernelMode : 1; - DWORD UserMode : 1; - DWORD Native : 1; - DWORD Process : 1; - DWORD ReservedZero0 : 12; -} WOW64_ARCHITECTURE_INFORMATION; - - -// -// Page/memory priorities. -// - -#define MEMORY_PRIORITY_LOWEST 0 -#define MEMORY_PRIORITY_VERY_LOW 1 -#define MEMORY_PRIORITY_LOW 2 -#define MEMORY_PRIORITY_MEDIUM 3 -#define MEMORY_PRIORITY_BELOW_NORMAL 4 -#define MEMORY_PRIORITY_NORMAL 5 - - -typedef struct _QUOTA_LIMITS { - SIZE_T PagedPoolLimit; - SIZE_T NonPagedPoolLimit; - SIZE_T MinimumWorkingSetSize; - SIZE_T MaximumWorkingSetSize; - SIZE_T PagefileLimit; - LARGE_INTEGER TimeLimit; -} QUOTA_LIMITS, *PQUOTA_LIMITS; - -#define QUOTA_LIMITS_HARDWS_MIN_ENABLE 0x00000001 -#define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002 -#define QUOTA_LIMITS_HARDWS_MAX_ENABLE 0x00000004 -#define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008 -#define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010 - -typedef union _RATE_QUOTA_LIMIT { - DWORD RateData; - struct { - DWORD RatePercent : 7; - DWORD Reserved0 : 25; - } DUMMYSTRUCTNAME; -} RATE_QUOTA_LIMIT, *PRATE_QUOTA_LIMIT; - -typedef struct _QUOTA_LIMITS_EX { - SIZE_T PagedPoolLimit; - SIZE_T NonPagedPoolLimit; - SIZE_T MinimumWorkingSetSize; - SIZE_T MaximumWorkingSetSize; - SIZE_T PagefileLimit; // Limit expressed in pages - LARGE_INTEGER TimeLimit; - SIZE_T WorkingSetLimit; // Limit expressed in pages - SIZE_T Reserved2; - SIZE_T Reserved3; - SIZE_T Reserved4; - DWORD Flags; - RATE_QUOTA_LIMIT CpuRateLimit; -} QUOTA_LIMITS_EX, *PQUOTA_LIMITS_EX; - -typedef struct _IO_COUNTERS { - ULONGLONG ReadOperationCount; - ULONGLONG WriteOperationCount; - ULONGLONG OtherOperationCount; - ULONGLONG ReadTransferCount; - ULONGLONG WriteTransferCount; - ULONGLONG OtherTransferCount; -} IO_COUNTERS; -typedef IO_COUNTERS *PIO_COUNTERS; - -#define MAX_HW_COUNTERS 16 -#define THREAD_PROFILING_FLAG_DISPATCH 0x00000001 - -typedef enum _HARDWARE_COUNTER_TYPE { - PMCCounter, - MaxHardwareCounterType -} HARDWARE_COUNTER_TYPE, *PHARDWARE_COUNTER_TYPE; -typedef enum _PROCESS_MITIGATION_POLICY { - ProcessDEPPolicy, - ProcessASLRPolicy, - ProcessDynamicCodePolicy, - ProcessStrictHandleCheckPolicy, - ProcessSystemCallDisablePolicy, - ProcessMitigationOptionsMask, - ProcessExtensionPointDisablePolicy, - ProcessControlFlowGuardPolicy, - ProcessSignaturePolicy, - ProcessFontDisablePolicy, - ProcessImageLoadPolicy, - ProcessSystemCallFilterPolicy, - ProcessPayloadRestrictionPolicy, - ProcessChildProcessPolicy, - ProcessSideChannelIsolationPolicy, - MaxProcessMitigationPolicy -} PROCESS_MITIGATION_POLICY, *PPROCESS_MITIGATION_POLICY; - -// -// N.B. High entropy mode is read only and can only be set at creation time -// and not via the ProcessMitigationPolicy APIs. -// - -typedef struct _PROCESS_MITIGATION_ASLR_POLICY { - union { - DWORD Flags; - struct { - DWORD EnableBottomUpRandomization : 1; - DWORD EnableForceRelocateImages : 1; - DWORD EnableHighEntropy : 1; - DWORD DisallowStrippedImages : 1; - DWORD ReservedFlags : 28; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_ASLR_POLICY, *PPROCESS_MITIGATION_ASLR_POLICY; - -typedef struct _PROCESS_MITIGATION_DEP_POLICY { - union { - DWORD Flags; - struct { - DWORD Enable : 1; - DWORD DisableAtlThunkEmulation : 1; - DWORD ReservedFlags : 30; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; - BOOLEAN Permanent; -} PROCESS_MITIGATION_DEP_POLICY, *PPROCESS_MITIGATION_DEP_POLICY; - -typedef struct _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY { - union { - DWORD Flags; - struct { - DWORD RaiseExceptionOnInvalidHandleReference : 1; - DWORD HandleExceptionsPermanentlyEnabled : 1; - DWORD ReservedFlags : 30; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, *PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY; - -typedef struct _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY { - union { - DWORD Flags; - struct { - DWORD DisallowWin32kSystemCalls : 1; - DWORD AuditDisallowWin32kSystemCalls : 1; - DWORD ReservedFlags : 30; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY, *PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY; - -typedef struct _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY { - union { - DWORD Flags; - struct { - DWORD DisableExtensionPoints : 1; - DWORD ReservedFlags : 31; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY, *PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY; - -typedef struct _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY { - union { - DWORD Flags; - struct { - DWORD ProhibitDynamicCode : 1; - DWORD AllowThreadOptOut : 1; - DWORD AllowRemoteDowngrade : 1; - DWORD AuditProhibitDynamicCode : 1; - DWORD ReservedFlags : 28; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_DYNAMIC_CODE_POLICY, *PPROCESS_MITIGATION_DYNAMIC_CODE_POLICY; - -typedef struct _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY { - union { - DWORD Flags; - struct { - DWORD EnableControlFlowGuard : 1; - DWORD EnableExportSuppression : 1; - DWORD StrictMode : 1; - DWORD ReservedFlags : 29; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY, *PPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY; - -typedef struct _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY { - union { - DWORD Flags; - struct { - DWORD MicrosoftSignedOnly : 1; - DWORD StoreSignedOnly : 1; - DWORD MitigationOptIn : 1; - DWORD AuditMicrosoftSignedOnly : 1; - DWORD AuditStoreSignedOnly : 1; - DWORD ReservedFlags : 27; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY, *PPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY; - -typedef struct _PROCESS_MITIGATION_FONT_DISABLE_POLICY { - union { - DWORD Flags; - struct { - DWORD DisableNonSystemFonts : 1; - DWORD AuditNonSystemFontLoading : 1; - DWORD ReservedFlags : 30; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_FONT_DISABLE_POLICY, *PPROCESS_MITIGATION_FONT_DISABLE_POLICY; - -typedef struct _PROCESS_MITIGATION_IMAGE_LOAD_POLICY { - union { - DWORD Flags; - struct { - DWORD NoRemoteImages : 1; - DWORD NoLowMandatoryLabelImages : 1; - DWORD PreferSystem32Images : 1; - DWORD AuditNoRemoteImages : 1; - DWORD AuditNoLowMandatoryLabelImages : 1; - DWORD ReservedFlags : 27; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_IMAGE_LOAD_POLICY, *PPROCESS_MITIGATION_IMAGE_LOAD_POLICY; - -typedef struct _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY { - union { - DWORD Flags; - struct { - DWORD FilterId: 4; - DWORD ReservedFlags : 28; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY, *PPROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY; - -typedef struct _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY { - union { - DWORD Flags; - struct { - DWORD EnableExportAddressFilter : 1; - DWORD AuditExportAddressFilter : 1; - - DWORD EnableExportAddressFilterPlus : 1; - DWORD AuditExportAddressFilterPlus : 1; - - DWORD EnableImportAddressFilter : 1; - DWORD AuditImportAddressFilter : 1; - - DWORD EnableRopStackPivot : 1; - DWORD AuditRopStackPivot : 1; - - DWORD EnableRopCallerCheck : 1; - DWORD AuditRopCallerCheck : 1; - - DWORD EnableRopSimExec : 1; - DWORD AuditRopSimExec : 1; - - DWORD ReservedFlags : 20; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY, *PPROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY; - -typedef struct _PROCESS_MITIGATION_CHILD_PROCESS_POLICY { - union { - DWORD Flags; - struct { - DWORD NoChildProcessCreation : 1; - DWORD AuditNoChildProcessCreation : 1; - DWORD AllowSecureProcessCreation : 1; - DWORD ReservedFlags : 29; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_CHILD_PROCESS_POLICY, *PPROCESS_MITIGATION_CHILD_PROCESS_POLICY; - -typedef struct _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY { - union { - DWORD Flags; - struct { - - // - // Prevent branch target pollution cross-SMT-thread in user mode. - // - - DWORD SmtBranchTargetIsolation : 1; - - // - // Isolate this process into a distinct security domain, even from - // other processes running as the same security context. This - // prevents branch target injection cross-process (normally such - // branch target injection is only inhibited across different - // security contexts). - // - // Page combining is limited to processes within the same security - // domain. This flag thus also effectively limits the process to - // only being able to combine internally to the process itself, - // except for common pages (unless further restricted by the - // DisablePageCombine policy). - // - - DWORD IsolateSecurityDomain : 1; - - // - // Disable all page combining for this process, even internally to - // the process itself, except for common pages (zeroes or ones). - // - - DWORD DisablePageCombine : 1; - - // - // Memory Disambiguation Disable. - // - - DWORD SpeculativeStoreBypassDisable : 1; - - DWORD ReservedFlags : 28; - - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY, *PPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY; - - -typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { - LARGE_INTEGER TotalUserTime; - LARGE_INTEGER TotalKernelTime; - LARGE_INTEGER ThisPeriodTotalUserTime; - LARGE_INTEGER ThisPeriodTotalKernelTime; - DWORD TotalPageFaultCount; - DWORD TotalProcesses; - DWORD ActiveProcesses; - DWORD TotalTerminatedProcesses; -} JOBOBJECT_BASIC_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION; - -typedef struct _JOBOBJECT_BASIC_LIMIT_INFORMATION { - LARGE_INTEGER PerProcessUserTimeLimit; - LARGE_INTEGER PerJobUserTimeLimit; - DWORD LimitFlags; - SIZE_T MinimumWorkingSetSize; - SIZE_T MaximumWorkingSetSize; - DWORD ActiveProcessLimit; - ULONG_PTR Affinity; - DWORD PriorityClass; - DWORD SchedulingClass; -} JOBOBJECT_BASIC_LIMIT_INFORMATION, *PJOBOBJECT_BASIC_LIMIT_INFORMATION; - -typedef struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION { - JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; - IO_COUNTERS IoInfo; - SIZE_T ProcessMemoryLimit; - SIZE_T JobMemoryLimit; - SIZE_T PeakProcessMemoryUsed; - SIZE_T PeakJobMemoryUsed; -} JOBOBJECT_EXTENDED_LIMIT_INFORMATION, *PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; - - -//@[comment("MVI_tracked")] -typedef struct _JOBOBJECT_BASIC_PROCESS_ID_LIST { - DWORD NumberOfAssignedProcesses; - DWORD NumberOfProcessIdsInList; - ULONG_PTR ProcessIdList[1]; -} JOBOBJECT_BASIC_PROCESS_ID_LIST, *PJOBOBJECT_BASIC_PROCESS_ID_LIST; - -typedef struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { - DWORD UIRestrictionsClass; -} JOBOBJECT_BASIC_UI_RESTRICTIONS, *PJOBOBJECT_BASIC_UI_RESTRICTIONS; - -// -// N.B. The JOBOBJECT_SECURITY_LIMIT_INFORMATION information class is no longer supported. -// - -typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { - DWORD SecurityLimitFlags ; - HANDLE JobToken ; - PTOKEN_GROUPS SidsToDisable ; - PTOKEN_PRIVILEGES PrivilegesToDelete ; - PTOKEN_GROUPS RestrictedSids ; -} JOBOBJECT_SECURITY_LIMIT_INFORMATION, *PJOBOBJECT_SECURITY_LIMIT_INFORMATION ; - -typedef struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION { - DWORD EndOfJobTimeAction; -} JOBOBJECT_END_OF_JOB_TIME_INFORMATION, *PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; - -typedef struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT { - PVOID CompletionKey; - HANDLE CompletionPort; -} JOBOBJECT_ASSOCIATE_COMPLETION_PORT, *PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; - -typedef struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { - JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; - IO_COUNTERS IoInfo; -} JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; - -typedef struct _JOBOBJECT_JOBSET_INFORMATION { - DWORD MemberLevel; -} JOBOBJECT_JOBSET_INFORMATION, *PJOBOBJECT_JOBSET_INFORMATION; - -typedef enum _JOBOBJECT_RATE_CONTROL_TOLERANCE { - ToleranceLow = 1, - ToleranceMedium, - ToleranceHigh -} JOBOBJECT_RATE_CONTROL_TOLERANCE, *PJOBOBJECT_RATE_CONTROL_TOLERANCE; - -typedef enum _JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL { - ToleranceIntervalShort = 1, - ToleranceIntervalMedium, - ToleranceIntervalLong -} JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL, - *PJOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL; - -typedef struct _JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION { - DWORD64 IoReadBytesLimit; - DWORD64 IoWriteBytesLimit; - LARGE_INTEGER PerJobUserTimeLimit; - DWORD64 JobMemoryLimit; - JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance; - JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval; - DWORD LimitFlags; -} JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION, *PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION; - -typedef struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 { - DWORD64 IoReadBytesLimit; - DWORD64 IoWriteBytesLimit; - LARGE_INTEGER PerJobUserTimeLimit; - union { - DWORD64 JobHighMemoryLimit; - DWORD64 JobMemoryLimit; - } DUMMYUNIONNAME; - - union { - JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance; - JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance; - } DUMMYUNIONNAME2; - - union { - JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval; - JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL - CpuRateControlToleranceInterval; - } DUMMYUNIONNAME3; - - DWORD LimitFlags; - JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlTolerance; - DWORD64 JobLowMemoryLimit; - JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL IoRateControlToleranceInterval; - JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlTolerance; - JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL NetRateControlToleranceInterval; -} JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2; - - -typedef struct _JOBOBJECT_LIMIT_VIOLATION_INFORMATION { - DWORD LimitFlags; - DWORD ViolationLimitFlags; - DWORD64 IoReadBytes; - DWORD64 IoReadBytesLimit; - DWORD64 IoWriteBytes; - DWORD64 IoWriteBytesLimit; - LARGE_INTEGER PerJobUserTime; - LARGE_INTEGER PerJobUserTimeLimit; - DWORD64 JobMemory; - DWORD64 JobMemoryLimit; - JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance; - JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit; -} JOBOBJECT_LIMIT_VIOLATION_INFORMATION, *PJOBOBJECT_LIMIT_VIOLATION_INFORMATION; - -typedef struct JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 { - DWORD LimitFlags; - DWORD ViolationLimitFlags; - DWORD64 IoReadBytes; - DWORD64 IoReadBytesLimit; - DWORD64 IoWriteBytes; - DWORD64 IoWriteBytesLimit; - LARGE_INTEGER PerJobUserTime; - LARGE_INTEGER PerJobUserTimeLimit; - DWORD64 JobMemory; - union { - DWORD64 JobHighMemoryLimit; - DWORD64 JobMemoryLimit; - } DUMMYUNIONNAME; - - union { - JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance; - JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance; - } DUMMYUNIONNAME2; - - union { - JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit; - JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlToleranceLimit; - } DUMMYUNIONNAME3; - - DWORD64 JobLowMemoryLimit; - JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlTolerance; - JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlToleranceLimit; - JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlTolerance; - JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlToleranceLimit; -} JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2; - - -typedef struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION { - DWORD ControlFlags; - union { - DWORD CpuRate; - DWORD Weight; - struct { - WORD MinRate; - WORD MaxRate; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, *PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION; - -// -// Control flags for network rate control. -// - -typedef enum JOB_OBJECT_NET_RATE_CONTROL_FLAGS { - JOB_OBJECT_NET_RATE_CONTROL_ENABLE = 0x1, - JOB_OBJECT_NET_RATE_CONTROL_MAX_BANDWIDTH = 0x2, - JOB_OBJECT_NET_RATE_CONTROL_DSCP_TAG = 0x4, - JOB_OBJECT_NET_RATE_CONTROL_VALID_FLAGS = 0x7 -} JOB_OBJECT_NET_RATE_CONTROL_FLAGS; - -#if !defined(SORTPP_PASS) && !defined(MIDL_PASS) && !defined(RC_INVOKED) - -DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_NET_RATE_CONTROL_FLAGS) -C_ASSERT(JOB_OBJECT_NET_RATE_CONTROL_VALID_FLAGS == - (JOB_OBJECT_NET_RATE_CONTROL_ENABLE + - JOB_OBJECT_NET_RATE_CONTROL_MAX_BANDWIDTH + - JOB_OBJECT_NET_RATE_CONTROL_DSCP_TAG)); - -#endif - -#define JOB_OBJECT_NET_RATE_CONTROL_MAX_DSCP_TAG 64 - -typedef struct JOBOBJECT_NET_RATE_CONTROL_INFORMATION { - DWORD64 MaxBandwidth; - JOB_OBJECT_NET_RATE_CONTROL_FLAGS ControlFlags; - BYTE DscpTag; -} JOBOBJECT_NET_RATE_CONTROL_INFORMATION; - - -// -// Control flags for IO rate control. -// - -// begin_ntosifs - -typedef enum JOB_OBJECT_IO_RATE_CONTROL_FLAGS { - JOB_OBJECT_IO_RATE_CONTROL_ENABLE = 0x1, - JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME = 0x2, - JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ALL = 0x4, - JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ON_SOFT_CAP = 0x8, - JOB_OBJECT_IO_RATE_CONTROL_VALID_FLAGS = JOB_OBJECT_IO_RATE_CONTROL_ENABLE | - JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME | - JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ALL | - JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ON_SOFT_CAP -} JOB_OBJECT_IO_RATE_CONTROL_FLAGS; - -#if !defined(SORTPP_PASS) && !defined(MIDL_PASS) && !defined(RC_INVOKED) - -DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS) - -#endif - -typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE { - LONG64 MaxIops; - LONG64 MaxBandwidth; - LONG64 ReservationIops; - PWSTR VolumeName; - DWORD BaseIoSize; - JOB_OBJECT_IO_RATE_CONTROL_FLAGS ControlFlags; - WORD VolumeNameLength; -} JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE; - -typedef JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE - JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V1; - -typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 { - LONG64 MaxIops; - LONG64 MaxBandwidth; - LONG64 ReservationIops; - PWSTR VolumeName; - DWORD BaseIoSize; - JOB_OBJECT_IO_RATE_CONTROL_FLAGS ControlFlags; - WORD VolumeNameLength; - LONG64 CriticalReservationIops; - LONG64 ReservationBandwidth; - LONG64 CriticalReservationBandwidth; - LONG64 MaxTimePercent; - LONG64 ReservationTimePercent; - LONG64 CriticalReservationTimePercent; -} JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2; - -typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 { - LONG64 MaxIops; - LONG64 MaxBandwidth; - LONG64 ReservationIops; - PWSTR VolumeName; - DWORD BaseIoSize; - JOB_OBJECT_IO_RATE_CONTROL_FLAGS ControlFlags; - WORD VolumeNameLength; - LONG64 CriticalReservationIops; - LONG64 ReservationBandwidth; - LONG64 CriticalReservationBandwidth; - LONG64 MaxTimePercent; - LONG64 ReservationTimePercent; - LONG64 CriticalReservationTimePercent; - LONG64 SoftMaxIops; - LONG64 SoftMaxBandwidth; - LONG64 SoftMaxTimePercent; - LONG64 LimitExcessNotifyIops; - LONG64 LimitExcessNotifyBandwidth; - LONG64 LimitExcessNotifyTimePercent; -} JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3; - -// end_ntosifs - -typedef enum JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS { - JOBOBJECT_IO_ATTRIBUTION_CONTROL_ENABLE = 0x1, - JOBOBJECT_IO_ATTRIBUTION_CONTROL_DISABLE = 0x2, - JOBOBJECT_IO_ATTRIBUTION_CONTROL_VALID_FLAGS = 0x3 -} JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS; - -typedef struct _JOBOBJECT_IO_ATTRIBUTION_STATS { - - ULONG_PTR IoCount; - ULONGLONG TotalNonOverlappedQueueTime; - ULONGLONG TotalNonOverlappedServiceTime; - ULONGLONG TotalSize; - -} JOBOBJECT_IO_ATTRIBUTION_STATS, *PJOBOBJECT_IO_ATTRIBUTION_STATS; - -typedef struct _JOBOBJECT_IO_ATTRIBUTION_INFORMATION { - DWORD ControlFlags; - - JOBOBJECT_IO_ATTRIBUTION_STATS ReadStats; - JOBOBJECT_IO_ATTRIBUTION_STATS WriteStats; - -} JOBOBJECT_IO_ATTRIBUTION_INFORMATION, *PJOBOBJECT_IO_ATTRIBUTION_INFORMATION; - - -#define JOB_OBJECT_TERMINATE_AT_END_OF_JOB 0 -#define JOB_OBJECT_POST_AT_END_OF_JOB 1 - -// -// Completion Port Messages for job objects -// -// These values are returned via the lpNumberOfBytesTransferred parameter -// - -#define JOB_OBJECT_MSG_END_OF_JOB_TIME 1 -#define JOB_OBJECT_MSG_END_OF_PROCESS_TIME 2 -#define JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT 3 -#define JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO 4 -#define JOB_OBJECT_MSG_NEW_PROCESS 6 -#define JOB_OBJECT_MSG_EXIT_PROCESS 7 -#define JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS 8 -#define JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT 9 -#define JOB_OBJECT_MSG_JOB_MEMORY_LIMIT 10 -#define JOB_OBJECT_MSG_NOTIFICATION_LIMIT 11 -#define JOB_OBJECT_MSG_JOB_CYCLE_TIME_LIMIT 12 -#define JOB_OBJECT_MSG_SILO_TERMINATED 13 - -// -// Define the valid notification filter values. -// - -#define JOB_OBJECT_MSG_MINIMUM 1 -#define JOB_OBJECT_MSG_MAXIMUM 13 - -#define JOB_OBJECT_VALID_COMPLETION_FILTER \ - (((1UL << (JOB_OBJECT_MSG_MAXIMUM + 1)) - 1) - \ - ((1UL << JOB_OBJECT_MSG_MINIMUM) - 1)) - -// -// Basic Limits -// -#define JOB_OBJECT_LIMIT_WORKINGSET 0x00000001 -#define JOB_OBJECT_LIMIT_PROCESS_TIME 0x00000002 -#define JOB_OBJECT_LIMIT_JOB_TIME 0x00000004 -#define JOB_OBJECT_LIMIT_ACTIVE_PROCESS 0x00000008 -#define JOB_OBJECT_LIMIT_AFFINITY 0x00000010 -#define JOB_OBJECT_LIMIT_PRIORITY_CLASS 0x00000020 -#define JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME 0x00000040 -#define JOB_OBJECT_LIMIT_SCHEDULING_CLASS 0x00000080 - -// -// Extended Limits -// -#define JOB_OBJECT_LIMIT_PROCESS_MEMORY 0x00000100 -#define JOB_OBJECT_LIMIT_JOB_MEMORY 0x00000200 -#define JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH JOB_OBJECT_LIMIT_JOB_MEMORY -#define JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION 0x00000400 -#define JOB_OBJECT_LIMIT_BREAKAWAY_OK 0x00000800 -#define JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK 0x00001000 -#define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE 0x00002000 -#define JOB_OBJECT_LIMIT_SUBSET_AFFINITY 0x00004000 -#define JOB_OBJECT_LIMIT_JOB_MEMORY_LOW 0x00008000 - -// -// Notification Limits -// - -#define JOB_OBJECT_LIMIT_JOB_READ_BYTES 0x00010000 -#define JOB_OBJECT_LIMIT_JOB_WRITE_BYTES 0x00020000 -#define JOB_OBJECT_LIMIT_RATE_CONTROL 0x00040000 -#define JOB_OBJECT_LIMIT_CPU_RATE_CONTROL JOB_OBJECT_LIMIT_RATE_CONTROL -#define JOB_OBJECT_LIMIT_IO_RATE_CONTROL 0x00080000 -#define JOB_OBJECT_LIMIT_NET_RATE_CONTROL 0x00100000 - - -// -// Valid Job Object Limits -// - -#define JOB_OBJECT_LIMIT_VALID_FLAGS 0x0007ffff -#define JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS 0x000000ff -#define JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS 0x00007fff -#define JOB_OBJECT_NOTIFICATION_LIMIT_VALID_FLAGS \ - (JOB_OBJECT_LIMIT_JOB_READ_BYTES | \ - JOB_OBJECT_LIMIT_JOB_WRITE_BYTES | \ - JOB_OBJECT_LIMIT_JOB_TIME | \ - JOB_OBJECT_LIMIT_JOB_MEMORY_LOW | \ - JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH | \ - JOB_OBJECT_LIMIT_CPU_RATE_CONTROL | \ - JOB_OBJECT_LIMIT_IO_RATE_CONTROL | \ - JOB_OBJECT_LIMIT_NET_RATE_CONTROL) - - -// -// UI restrictions for jobs -// - -#define JOB_OBJECT_UILIMIT_NONE 0x00000000 - -#define JOB_OBJECT_UILIMIT_HANDLES 0x00000001 -#define JOB_OBJECT_UILIMIT_READCLIPBOARD 0x00000002 -#define JOB_OBJECT_UILIMIT_WRITECLIPBOARD 0x00000004 -#define JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS 0x00000008 -#define JOB_OBJECT_UILIMIT_DISPLAYSETTINGS 0x00000010 -#define JOB_OBJECT_UILIMIT_GLOBALATOMS 0x00000020 -#define JOB_OBJECT_UILIMIT_DESKTOP 0x00000040 -#define JOB_OBJECT_UILIMIT_EXITWINDOWS 0x00000080 - -#define JOB_OBJECT_UILIMIT_ALL 0x000000FF - -#define JOB_OBJECT_UI_VALID_FLAGS 0x000000FF - -#define JOB_OBJECT_SECURITY_NO_ADMIN 0x00000001 -#define JOB_OBJECT_SECURITY_RESTRICTED_TOKEN 0x00000002 -#define JOB_OBJECT_SECURITY_ONLY_TOKEN 0x00000004 -#define JOB_OBJECT_SECURITY_FILTER_TOKENS 0x00000008 - -#define JOB_OBJECT_SECURITY_VALID_FLAGS 0x0000000f - -// -// Control flags for CPU rate control. -// - -#define JOB_OBJECT_CPU_RATE_CONTROL_ENABLE 0x1 -#define JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED 0x2 -#define JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP 0x4 -#define JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY 0x8 -#define JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE 0x10 -#define JOB_OBJECT_CPU_RATE_CONTROL_VALID_FLAGS 0x1f - - -//@[comment("MVI_tracked")] -typedef enum _JOBOBJECTINFOCLASS { - JobObjectBasicAccountingInformation = 1, - JobObjectBasicLimitInformation, - JobObjectBasicProcessIdList, - JobObjectBasicUIRestrictions, - JobObjectSecurityLimitInformation, // deprecated - JobObjectEndOfJobTimeInformation, - JobObjectAssociateCompletionPortInformation, - JobObjectBasicAndIoAccountingInformation, - JobObjectExtendedLimitInformation, - JobObjectJobSetInformation, - JobObjectGroupInformation, - JobObjectNotificationLimitInformation, - JobObjectLimitViolationInformation, - JobObjectGroupInformationEx, - JobObjectCpuRateControlInformation, - JobObjectCompletionFilter, - JobObjectCompletionCounter, - JobObjectReserved1Information = 18, - JobObjectReserved2Information, - JobObjectReserved3Information, - JobObjectReserved4Information, - JobObjectReserved5Information, - JobObjectReserved6Information, - JobObjectReserved7Information, - JobObjectReserved8Information, - JobObjectReserved9Information, - JobObjectReserved10Information, - JobObjectReserved11Information, - JobObjectReserved12Information, - JobObjectReserved13Information, - JobObjectReserved14Information = 31, - JobObjectNetRateControlInformation, - JobObjectNotificationLimitInformation2, - JobObjectLimitViolationInformation2, - JobObjectCreateSilo, - JobObjectSiloBasicInformation, - JobObjectReserved15Information = 37, - JobObjectReserved16Information = 38, - JobObjectReserved17Information = 39, - JobObjectReserved18Information = 40, - JobObjectReserved19Information = 41, - JobObjectReserved20Information = 42, - JobObjectReserved21Information = 43, - JobObjectReserved22Information = 44, - JobObjectReserved23Information = 45, - JobObjectReserved24Information = 46, - JobObjectReserved25Information = 47, - MaxJobObjectInfoClass -} JOBOBJECTINFOCLASS; - - - -typedef struct _SILOOBJECT_BASIC_INFORMATION { - DWORD SiloId; - DWORD SiloParentId; - DWORD NumberOfProcesses; - BOOLEAN IsInServerSilo; - BYTE Reserved[3]; -} SILOOBJECT_BASIC_INFORMATION, *PSILOOBJECT_BASIC_INFORMATION; - -typedef enum _SERVERSILO_STATE { - SERVERSILO_INITING = 0, - SERVERSILO_STARTED, - SERVERSILO_SHUTTING_DOWN, - SERVERSILO_TERMINATING, - SERVERSILO_TERMINATED, -} SERVERSILO_STATE, *PSERVERSILO_STATE; - -typedef struct _SERVERSILO_BASIC_INFORMATION { - DWORD ServiceSessionId; - SERVERSILO_STATE State; - DWORD ExitStatus; -} SERVERSILO_BASIC_INFORMATION, *PSERVERSILO_BASIC_INFORMATION; - - -typedef enum _FIRMWARE_TYPE { - FirmwareTypeUnknown, - FirmwareTypeBios, - FirmwareTypeUefi, - FirmwareTypeMax -} FIRMWARE_TYPE, *PFIRMWARE_TYPE; - -#define EVENT_MODIFY_STATE 0x0002 -#define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) - -// -// Mutant Specific Access Rights -// -#define MUTANT_QUERY_STATE 0x0001 - -#define MUTANT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|\ - MUTANT_QUERY_STATE) - -#define SEMAPHORE_MODIFY_STATE 0x0002 -#define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) - -// -// Timer Specific Access Rights. -// - -#define TIMER_QUERY_STATE 0x0001 -#define TIMER_MODIFY_STATE 0x0002 - -#define TIMER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|\ - TIMER_QUERY_STATE|TIMER_MODIFY_STATE) - -// begin_nthal - -#define TIME_ZONE_ID_UNKNOWN 0 -#define TIME_ZONE_ID_STANDARD 1 -#define TIME_ZONE_ID_DAYLIGHT 2 - -// end_nthal - -typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP { - RelationProcessorCore, - RelationNumaNode, - RelationCache, - RelationProcessorPackage, - RelationGroup, - RelationAll = 0xffff -} LOGICAL_PROCESSOR_RELATIONSHIP; - -#define LTP_PC_SMT 0x1 - -typedef enum _PROCESSOR_CACHE_TYPE { - CacheUnified, - CacheInstruction, - CacheData, - CacheTrace -} PROCESSOR_CACHE_TYPE; - -#define CACHE_FULLY_ASSOCIATIVE 0xFF - -typedef struct _CACHE_DESCRIPTOR { - BYTE Level; - BYTE Associativity; - WORD LineSize; - DWORD Size; - PROCESSOR_CACHE_TYPE Type; -} CACHE_DESCRIPTOR, *PCACHE_DESCRIPTOR; - -typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION { - ULONG_PTR ProcessorMask; - LOGICAL_PROCESSOR_RELATIONSHIP Relationship; - union { - struct { - BYTE Flags; - } ProcessorCore; - struct { - DWORD NodeNumber; - } NumaNode; - CACHE_DESCRIPTOR Cache; - ULONGLONG Reserved[2]; - } DUMMYUNIONNAME; -} SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION; - -typedef struct _PROCESSOR_RELATIONSHIP { - BYTE Flags; - BYTE EfficiencyClass; - BYTE Reserved[20]; - WORD GroupCount; - _Field_size_(GroupCount) GROUP_AFFINITY GroupMask[ANYSIZE_ARRAY]; -} PROCESSOR_RELATIONSHIP, *PPROCESSOR_RELATIONSHIP; - -typedef struct _NUMA_NODE_RELATIONSHIP { - DWORD NodeNumber; - BYTE Reserved[20]; - GROUP_AFFINITY GroupMask; -} NUMA_NODE_RELATIONSHIP, *PNUMA_NODE_RELATIONSHIP; - -typedef struct _CACHE_RELATIONSHIP { - BYTE Level; - BYTE Associativity; - WORD LineSize; - DWORD CacheSize; - PROCESSOR_CACHE_TYPE Type; - BYTE Reserved[20]; - GROUP_AFFINITY GroupMask; -} CACHE_RELATIONSHIP, *PCACHE_RELATIONSHIP; - -typedef struct _PROCESSOR_GROUP_INFO { - BYTE MaximumProcessorCount; - BYTE ActiveProcessorCount; - BYTE Reserved[38]; - KAFFINITY ActiveProcessorMask; -} PROCESSOR_GROUP_INFO, *PPROCESSOR_GROUP_INFO; - -typedef struct _GROUP_RELATIONSHIP { - WORD MaximumGroupCount; - WORD ActiveGroupCount; - BYTE Reserved[20]; - PROCESSOR_GROUP_INFO GroupInfo[ANYSIZE_ARRAY]; -} GROUP_RELATIONSHIP, *PGROUP_RELATIONSHIP; - -_Struct_size_bytes_(Size) struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX { - LOGICAL_PROCESSOR_RELATIONSHIP Relationship; - DWORD Size; - union { - PROCESSOR_RELATIONSHIP Processor; - NUMA_NODE_RELATIONSHIP NumaNode; - CACHE_RELATIONSHIP Cache; - GROUP_RELATIONSHIP Group; - } DUMMYUNIONNAME; -}; - -typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX; - -typedef enum _CPU_SET_INFORMATION_TYPE { - CpuSetInformation -} CPU_SET_INFORMATION_TYPE, *PCPU_SET_INFORMATION_TYPE; - -_Struct_size_bytes_(Size) struct _SYSTEM_CPU_SET_INFORMATION { - DWORD Size; - CPU_SET_INFORMATION_TYPE Type; - union { - struct { - DWORD Id; - WORD Group; - BYTE LogicalProcessorIndex; - BYTE CoreIndex; - BYTE LastLevelCacheIndex; - BYTE NumaNodeIndex; - BYTE EfficiencyClass; - union { - -#define SYSTEM_CPU_SET_INFORMATION_PARKED 0x1 -#define SYSTEM_CPU_SET_INFORMATION_ALLOCATED 0x2 -#define SYSTEM_CPU_SET_INFORMATION_ALLOCATED_TO_TARGET_PROCESS 0x4 -#define SYSTEM_CPU_SET_INFORMATION_REALTIME 0x8 - - BYTE AllFlags; - struct { - BYTE Parked : 1; - BYTE Allocated : 1; - BYTE AllocatedToTargetProcess : 1; - BYTE RealTime : 1; - BYTE ReservedFlags : 4; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME2; - - union { - DWORD Reserved; - BYTE SchedulingClass; - }; - - DWORD64 AllocationTag; - } CpuSet; - } DUMMYUNIONNAME; -}; - -typedef struct _SYSTEM_CPU_SET_INFORMATION SYSTEM_CPU_SET_INFORMATION, *PSYSTEM_CPU_SET_INFORMATION; - -// end_wdm end_ntminiport - -typedef struct _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION { - DWORD64 CycleTime; -} SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, *PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION; - -#define PROCESSOR_INTEL_386 386 -#define PROCESSOR_INTEL_486 486 -#define PROCESSOR_INTEL_PENTIUM 586 -#define PROCESSOR_INTEL_IA64 2200 -#define PROCESSOR_AMD_X8664 8664 -#define PROCESSOR_MIPS_R4000 4000 // incl R4101 & R3910 for Windows CE -#define PROCESSOR_ALPHA_21064 21064 -#define PROCESSOR_PPC_601 601 -#define PROCESSOR_PPC_603 603 -#define PROCESSOR_PPC_604 604 -#define PROCESSOR_PPC_620 620 -#define PROCESSOR_HITACHI_SH3 10003 // Windows CE -#define PROCESSOR_HITACHI_SH3E 10004 // Windows CE -#define PROCESSOR_HITACHI_SH4 10005 // Windows CE -#define PROCESSOR_MOTOROLA_821 821 // Windows CE -#define PROCESSOR_SHx_SH3 103 // Windows CE -#define PROCESSOR_SHx_SH4 104 // Windows CE -#define PROCESSOR_STRONGARM 2577 // Windows CE - 0xA11 -#define PROCESSOR_ARM720 1824 // Windows CE - 0x720 -#define PROCESSOR_ARM820 2080 // Windows CE - 0x820 -#define PROCESSOR_ARM920 2336 // Windows CE - 0x920 -#define PROCESSOR_ARM_7TDMI 70001 // Windows CE -#define PROCESSOR_OPTIL 0x494f // MSIL - -#define PROCESSOR_ARCHITECTURE_INTEL 0 -#define PROCESSOR_ARCHITECTURE_MIPS 1 -#define PROCESSOR_ARCHITECTURE_ALPHA 2 -#define PROCESSOR_ARCHITECTURE_PPC 3 -#define PROCESSOR_ARCHITECTURE_SHX 4 -#define PROCESSOR_ARCHITECTURE_ARM 5 -#define PROCESSOR_ARCHITECTURE_IA64 6 -#define PROCESSOR_ARCHITECTURE_ALPHA64 7 -#define PROCESSOR_ARCHITECTURE_MSIL 8 -#define PROCESSOR_ARCHITECTURE_AMD64 9 -#define PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 10 -#define PROCESSOR_ARCHITECTURE_NEUTRAL 11 -#define PROCESSOR_ARCHITECTURE_ARM64 12 -#define PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64 13 -#define PROCESSOR_ARCHITECTURE_IA32_ON_ARM64 14 - -#define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF - -#define PF_FLOATING_POINT_PRECISION_ERRATA 0 -#define PF_FLOATING_POINT_EMULATED 1 -#define PF_COMPARE_EXCHANGE_DOUBLE 2 -#define PF_MMX_INSTRUCTIONS_AVAILABLE 3 -#define PF_PPC_MOVEMEM_64BIT_OK 4 -#define PF_ALPHA_BYTE_INSTRUCTIONS 5 -#define PF_XMMI_INSTRUCTIONS_AVAILABLE 6 -#define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7 -#define PF_RDTSC_INSTRUCTION_AVAILABLE 8 -#define PF_PAE_ENABLED 9 -#define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 -#define PF_SSE_DAZ_MODE_AVAILABLE 11 -#define PF_NX_ENABLED 12 -#define PF_SSE3_INSTRUCTIONS_AVAILABLE 13 -#define PF_COMPARE_EXCHANGE128 14 -#define PF_COMPARE64_EXCHANGE128 15 -#define PF_CHANNELS_ENABLED 16 -#define PF_XSAVE_ENABLED 17 -#define PF_ARM_VFP_32_REGISTERS_AVAILABLE 18 -#define PF_ARM_NEON_INSTRUCTIONS_AVAILABLE 19 -#define PF_SECOND_LEVEL_ADDRESS_TRANSLATION 20 -#define PF_VIRT_FIRMWARE_ENABLED 21 -#define PF_RDWRFSGSBASE_AVAILABLE 22 -#define PF_FASTFAIL_AVAILABLE 23 -#define PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE 24 -#define PF_ARM_64BIT_LOADSTORE_ATOMIC 25 -#define PF_ARM_EXTERNAL_CACHE_AVAILABLE 26 -#define PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE 27 -#define PF_RDRAND_INSTRUCTION_AVAILABLE 28 -#define PF_ARM_V8_INSTRUCTIONS_AVAILABLE 29 -#define PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE 30 -#define PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE 31 -#define PF_RDTSCP_INSTRUCTION_AVAILABLE 32 -#define PF_RDPID_INSTRUCTION_AVAILABLE 33 -#define PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE 34 -#define PF_MONITORX_INSTRUCTION_AVAILABLE 35 - -// -// Known extended CPU state feature BITs -// -// 0 x87 -// 1 SSE -// 2 AVX -// 3 BNDREGS (B0.LB-B3.LB B0.UB-B3.UB) -// 4 BNDCSR (BNDCFGU + BNDSTATUS) Persistent -// 5 KMASK (KMASK [63:0][0-7]) -// 6 ZMM_H (ZMM_H[511:256][0-15]) -// 7 ZMM (ZMM[511:0][16-31]) -// 8 IPT Supervisor -// -// 11 CET_U Supervisor -// -// 62 LWP Persistent -// -// 63 RZ0 Reserved -// - -#define XSTATE_LEGACY_FLOATING_POINT (0) -#define XSTATE_LEGACY_SSE (1) -#define XSTATE_GSSE (2) -#define XSTATE_AVX (XSTATE_GSSE) -#define XSTATE_MPX_BNDREGS (3) -#define XSTATE_MPX_BNDCSR (4) -#define XSTATE_AVX512_KMASK (5) -#define XSTATE_AVX512_ZMM_H (6) -#define XSTATE_AVX512_ZMM (7) -#define XSTATE_IPT (8) -#define XSTATE_CET_U (11) -#define XSTATE_LWP (62) -#define MAXIMUM_XSTATE_FEATURES (64) - -// -// Known extended CPU state feature MASKs -// - -#define XSTATE_MASK_LEGACY_FLOATING_POINT (1ui64 << (XSTATE_LEGACY_FLOATING_POINT)) -#define XSTATE_MASK_LEGACY_SSE (1ui64 << (XSTATE_LEGACY_SSE)) -#define XSTATE_MASK_LEGACY (XSTATE_MASK_LEGACY_FLOATING_POINT | \ - XSTATE_MASK_LEGACY_SSE) - -#define XSTATE_MASK_GSSE (1ui64 << (XSTATE_GSSE)) -#define XSTATE_MASK_AVX (XSTATE_MASK_GSSE) -#define XSTATE_MASK_MPX ((1ui64 << (XSTATE_MPX_BNDREGS)) | \ - (1ui64 << (XSTATE_MPX_BNDCSR))) - -#define XSTATE_MASK_AVX512 ((1ui64 << (XSTATE_AVX512_KMASK)) | \ - (1ui64 << (XSTATE_AVX512_ZMM_H)) | \ - (1ui64 << (XSTATE_AVX512_ZMM))) - -#define XSTATE_MASK_IPT (1ui64 << (XSTATE_IPT)) -#define XSTATE_MASK_CET_U (1ui64 << (XSTATE_CET_U)) -#define XSTATE_MASK_LWP (1ui64 << (XSTATE_LWP)) - -#define XSTATE_MASK_ALLOWED (XSTATE_MASK_LEGACY | \ - XSTATE_MASK_AVX | \ - XSTATE_MASK_MPX | \ - XSTATE_MASK_AVX512 | \ - XSTATE_MASK_IPT | \ - XSTATE_MASK_CET_U | \ - XSTATE_MASK_LWP) - -#define XSTATE_MASK_PERSISTENT ((1ui64 << (XSTATE_MPX_BNDCSR)) | \ - XSTATE_MASK_LWP) - -#define XSTATE_MASK_USER_VISIBLE_SUPERVISOR (XSTATE_MASK_CET_U) - -// -// Flags associated with compaction mask -// - -#define XSTATE_COMPACTION_ENABLE (63) -#define XSTATE_COMPACTION_ENABLE_MASK (1ui64 << (XSTATE_COMPACTION_ENABLE)) - -#define XSTATE_ALIGN_BIT (1) -#define XSTATE_ALIGN_MASK (1ui64 << (XSTATE_ALIGN_BIT)) - -#define XSTATE_CONTROLFLAG_XSAVEOPT_MASK (1) -#define XSTATE_CONTROLFLAG_XSAVEC_MASK (2) -#define XSTATE_CONTROLFLAG_VALID_MASK (XSTATE_CONTROLFLAG_XSAVEOPT_MASK | \ - XSTATE_CONTROLFLAG_XSAVEC_MASK) - -// -// Extended processor state configuration -// - -typedef struct _XSTATE_FEATURE { - DWORD Offset; - DWORD Size; -} XSTATE_FEATURE, *PXSTATE_FEATURE; - -typedef struct _XSTATE_CONFIGURATION { - // Mask of all enabled features - DWORD64 EnabledFeatures; - - // Mask of volatile enabled features - DWORD64 EnabledVolatileFeatures; - - // Total size of the save area for user states - DWORD Size; - - // Control Flags - union { - DWORD ControlFlags; - struct - { - DWORD OptimizedSave : 1; - DWORD CompactionEnabled : 1; - }; - }; - - // List of features - XSTATE_FEATURE Features[MAXIMUM_XSTATE_FEATURES]; - - // Mask of all supervisor features - DWORD64 EnabledSupervisorFeatures; - - // Mask of features that require start address to be 64 byte aligned - DWORD64 AlignedFeatures; - - // Total size of the save area for user and supervisor states - DWORD AllFeatureSize; - - // List which holds size of each user and supervisor state supported by CPU - DWORD AllFeatures[MAXIMUM_XSTATE_FEATURES]; - - // Mask of all supervisor features that are exposed to user-mode - DWORD64 EnabledUserVisibleSupervisorFeatures; - -} XSTATE_CONFIGURATION, *PXSTATE_CONFIGURATION; - -// begin_ntifs - -typedef struct _MEMORY_BASIC_INFORMATION { - PVOID BaseAddress; - PVOID AllocationBase; - DWORD AllocationProtect; - SIZE_T RegionSize; - DWORD State; - DWORD Protect; - DWORD Type; -} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION; - -// end_ntifs - -typedef struct _MEMORY_BASIC_INFORMATION32 { - DWORD BaseAddress; - DWORD AllocationBase; - DWORD AllocationProtect; - DWORD RegionSize; - DWORD State; - DWORD Protect; - DWORD Type; -} MEMORY_BASIC_INFORMATION32, *PMEMORY_BASIC_INFORMATION32; - -typedef struct DECLSPEC_ALIGN(16) _MEMORY_BASIC_INFORMATION64 { - ULONGLONG BaseAddress; - ULONGLONG AllocationBase; - DWORD AllocationProtect; - DWORD __alignment1; - ULONGLONG RegionSize; - DWORD State; - DWORD Protect; - DWORD Type; - DWORD __alignment2; -} MEMORY_BASIC_INFORMATION64, *PMEMORY_BASIC_INFORMATION64; - -// -// Define flags for setting process CFG valid call target entries. -// - -// -// Call target should be made valid. If not set, the call target is made -// invalid. Input flag. -// - -#define CFG_CALL_TARGET_VALID (0x00000001) - -// -// Call target has been successfully processed. Used to report to the caller -// how much progress has been made. Output flag. -// - -#define CFG_CALL_TARGET_PROCESSED (0x00000002) - -// -// Call target should be made valid only if it is suppressed export. -// What this flag means is that it can *only* be used on a cell which is -// currently in the CFG export suppressed state (only considered for export -// suppressed processes and not legacy CFG processes!), and it is also -// allowed to be used even if the process is a restricted (i.e. no ACG) process. -// - -#define CFG_CALL_TARGET_CONVERT_EXPORT_SUPPRESSED_TO_VALID (0x00000004) - -typedef struct _CFG_CALL_TARGET_INFO { - ULONG_PTR Offset; - ULONG_PTR Flags; -} CFG_CALL_TARGET_INFO, *PCFG_CALL_TARGET_INFO; - -#define SECTION_QUERY 0x0001 -#define SECTION_MAP_WRITE 0x0002 -#define SECTION_MAP_READ 0x0004 -#define SECTION_MAP_EXECUTE 0x0008 -#define SECTION_EXTEND_SIZE 0x0010 -#define SECTION_MAP_EXECUTE_EXPLICIT 0x0020 // not included in SECTION_ALL_ACCESS - -#define SECTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SECTION_QUERY|\ - SECTION_MAP_WRITE | \ - SECTION_MAP_READ | \ - SECTION_MAP_EXECUTE | \ - SECTION_EXTEND_SIZE) - -// -// Session Specific Access Rights. -// - -#define SESSION_QUERY_ACCESS 0x0001 -#define SESSION_MODIFY_ACCESS 0x0002 - -#define SESSION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | \ - SESSION_QUERY_ACCESS | \ - SESSION_MODIFY_ACCESS) - -// end_access -#define PAGE_NOACCESS 0x01 -#define PAGE_READONLY 0x02 -#define PAGE_READWRITE 0x04 -#define PAGE_WRITECOPY 0x08 -#define PAGE_EXECUTE 0x10 -#define PAGE_EXECUTE_READ 0x20 -#define PAGE_EXECUTE_READWRITE 0x40 -#define PAGE_EXECUTE_WRITECOPY 0x80 -#define PAGE_GUARD 0x100 -#define PAGE_NOCACHE 0x200 -#define PAGE_WRITECOMBINE 0x400 -#define PAGE_GRAPHICS_NOACCESS 0x0800 -#define PAGE_GRAPHICS_READONLY 0x1000 -#define PAGE_GRAPHICS_READWRITE 0x2000 -#define PAGE_GRAPHICS_EXECUTE 0x4000 -#define PAGE_GRAPHICS_EXECUTE_READ 0x8000 -#define PAGE_GRAPHICS_EXECUTE_READWRITE 0x10000 -#define PAGE_GRAPHICS_COHERENT 0x20000 -#define PAGE_ENCLAVE_THREAD_CONTROL 0x80000000 -#define PAGE_REVERT_TO_FILE_MAP 0x80000000 -#define PAGE_TARGETS_NO_UPDATE 0x40000000 -#define PAGE_TARGETS_INVALID 0x40000000 -#define PAGE_ENCLAVE_UNVALIDATED 0x20000000 -#define PAGE_ENCLAVE_DECOMMIT 0x10000000 -#define MEM_COMMIT 0x00001000 -#define MEM_RESERVE 0x00002000 -#define MEM_REPLACE_PLACEHOLDER 0x00004000 -#define MEM_RESERVE_PLACEHOLDER 0x00040000 -#define MEM_RESET 0x00080000 -#define MEM_TOP_DOWN 0x00100000 -#define MEM_WRITE_WATCH 0x00200000 -#define MEM_PHYSICAL 0x00400000 -#define MEM_ROTATE 0x00800000 -#define MEM_DIFFERENT_IMAGE_BASE_OK 0x00800000 -#define MEM_RESET_UNDO 0x01000000 -#define MEM_LARGE_PAGES 0x20000000 -#define MEM_4MB_PAGES 0x80000000 -#define MEM_64K_PAGES (MEM_LARGE_PAGES | MEM_PHYSICAL) -#define MEM_UNMAP_WITH_TRANSIENT_BOOST 0x00000001 -#define MEM_COALESCE_PLACEHOLDERS 0x00000001 -#define MEM_PRESERVE_PLACEHOLDER 0x00000002 -#define MEM_DECOMMIT 0x00004000 -#define MEM_RELEASE 0x00008000 -#define MEM_FREE 0x00010000 -// begin_wdm - -typedef struct _MEM_ADDRESS_REQUIREMENTS { - PVOID LowestStartingAddress; - PVOID HighestEndingAddress; - SIZE_T Alignment; -} MEM_ADDRESS_REQUIREMENTS, *PMEM_ADDRESS_REQUIREMENTS; - -#define MEM_EXTENDED_PARAMETER_GRAPHICS 0x00000001 -#define MEM_EXTENDED_PARAMETER_NONPAGED 0x00000002 -#define MEM_EXTENDED_PARAMETER_ZERO_PAGES_OPTIONAL 0x00000004 -#define MEM_EXTENDED_PARAMETER_NONPAGED_LARGE 0x00000008 -#define MEM_EXTENDED_PARAMETER_NONPAGED_HUGE 0x00000010 - -// -// Use the high DWORD64 bit of the MEM_EXTENDED_PARAMETER to indicate -// that the supplied NUMA node in the low bits is mandatory. Note this -// is different from the MEM_EXTENDED_PARAMETER_XXX fields above because -// those are encoded in the Type field; this is encoded in the ULong64 field. -// -// This can only be used nonpaged allocations since we don't want page -// faults to fail due to transient memory shortages on arbitrary nodes. -// - -#define MEM_EXTENDED_PARAMETER_NUMA_NODE_MANDATORY MINLONG64 - -typedef enum MEM_EXTENDED_PARAMETER_TYPE { - MemExtendedParameterInvalidType = 0, - MemExtendedParameterAddressRequirements, - MemExtendedParameterNumaNode, - MemExtendedParameterPartitionHandle, - MemExtendedParameterUserPhysicalHandle, - MemExtendedParameterAttributeFlags, - MemExtendedParameterMax -} MEM_EXTENDED_PARAMETER_TYPE, *PMEM_EXTENDED_PARAMETER_TYPE; - -#define MEM_EXTENDED_PARAMETER_TYPE_BITS 8 - -typedef struct DECLSPEC_ALIGN(8) MEM_EXTENDED_PARAMETER { - - struct { - DWORD64 Type : MEM_EXTENDED_PARAMETER_TYPE_BITS; - DWORD64 Reserved : 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS; - } DUMMYSTRUCTNAME; - - union { - DWORD64 ULong64; - PVOID Pointer; - SIZE_T Size; - HANDLE Handle; - DWORD ULong; - } DUMMYUNIONNAME; - -} MEM_EXTENDED_PARAMETER, *PMEM_EXTENDED_PARAMETER; - -#define SEC_PARTITION_OWNER_HANDLE 0x00040000 -#define SEC_64K_PAGES 0x00080000 -#define SEC_FILE 0x00800000 -#define SEC_IMAGE 0x01000000 -#define SEC_PROTECTED_IMAGE 0x02000000 -#define SEC_RESERVE 0x04000000 -#define SEC_COMMIT 0x08000000 -#define SEC_NOCACHE 0x10000000 -#define SEC_WRITECOMBINE 0x40000000 -#define SEC_LARGE_PAGES 0x80000000 -#define SEC_IMAGE_NO_EXECUTE (SEC_IMAGE | SEC_NOCACHE) -// begin_wdm - -typedef enum MEM_SECTION_EXTENDED_PARAMETER_TYPE { - MemSectionExtendedParameterInvalidType = 0, - MemSectionExtendedParameterUserPhysicalFlags, - MemSectionExtendedParameterNumaNode, - MemSectionExtendedParameterMax -} MEM_SECTION_EXTENDED_PARAMETER_TYPE, *PMEM_SECTION_EXTENDED_PARAMETER_TYPE; - -#define MEM_PRIVATE 0x00020000 -#define MEM_MAPPED 0x00040000 -#define MEM_IMAGE 0x01000000 -#define WRITE_WATCH_FLAG_RESET 0x01 - -#define ENCLAVE_TYPE_SGX 0x00000001 -#define ENCLAVE_TYPE_SGX2 0x00000002 - -typedef struct _ENCLAVE_CREATE_INFO_SGX { - BYTE Secs[4096]; -} ENCLAVE_CREATE_INFO_SGX, *PENCLAVE_CREATE_INFO_SGX; - -typedef struct _ENCLAVE_INIT_INFO_SGX { - BYTE SigStruct[1808]; - BYTE Reserved1[240]; - BYTE EInitToken[304]; - BYTE Reserved2[1744]; -} ENCLAVE_INIT_INFO_SGX, *PENCLAVE_INIT_INFO_SGX; - -#define ENCLAVE_TYPE_VBS 0x00000010 - -typedef struct _ENCLAVE_CREATE_INFO_VBS { - DWORD Flags; - BYTE OwnerID[32]; -} ENCLAVE_CREATE_INFO_VBS, *PENCLAVE_CREATE_INFO_VBS; - -#define ENCLAVE_VBS_FLAG_DEBUG 0x00000001 - -#define ENCLAVE_TYPE_VBS_BASIC 0x00000011 - -typedef struct _ENCLAVE_CREATE_INFO_VBS_BASIC { - DWORD Flags; - BYTE OwnerID[32]; -} ENCLAVE_CREATE_INFO_VBS_BASIC, *PENCLAVE_CREATE_INFO_VBS_BASIC; - -typedef struct _ENCLAVE_LOAD_DATA_VBS_BASIC { - DWORD PageType; -} ENCLAVE_LOAD_DATA_VBS_BASIC, *PENCLAVE_LOAD_DATA_VBS_BASIC; - -#define VBS_BASIC_PAGE_MEASURED_DATA 0x00000001 -#define VBS_BASIC_PAGE_UNMEASURED_DATA 0x00000002 -#define VBS_BASIC_PAGE_ZERO_FILL 0x00000003 -#define VBS_BASIC_PAGE_THREAD_DESCRIPTOR 0x00000004 -#define VBS_BASIC_PAGE_SYSTEM_CALL 0x00000005 - -typedef struct _ENCLAVE_INIT_INFO_VBS_BASIC { - BYTE FamilyId[ENCLAVE_SHORT_ID_LENGTH]; - BYTE ImageId[ENCLAVE_SHORT_ID_LENGTH]; - ULONGLONG EnclaveSize; - DWORD EnclaveSvn; - DWORD Reserved; - union { - HANDLE SignatureInfoHandle; - ULONGLONG Unused; - } DUMMYUNIONNAME; -} ENCLAVE_INIT_INFO_VBS_BASIC, *PENCLAVE_INIT_INFO_VBS_BASIC; - - -typedef struct _ENCLAVE_INIT_INFO_VBS { - DWORD Length; - DWORD ThreadCount; -} ENCLAVE_INIT_INFO_VBS, *PENCLAVE_INIT_INFO_VBS; - -#if !defined(SORTPP_PASS) && !defined(MIDL_PASS) && !defined(RC_INVOKED) - -typedef PVOID (ENCLAVE_TARGET_FUNCTION)(PVOID); -typedef ENCLAVE_TARGET_FUNCTION (*PENCLAVE_TARGET_FUNCTION); -typedef PENCLAVE_TARGET_FUNCTION LPENCLAVE_TARGET_FUNCTION; - -#endif - -// begin_access - -// -// Define access rights to files and directories -// - -// -// The FILE_READ_DATA and FILE_WRITE_DATA constants are also defined in -// devioctl.h as FILE_READ_ACCESS and FILE_WRITE_ACCESS. The values for these -// constants *MUST* always be in sync. -// The values are redefined in devioctl.h because they must be available to -// both DOS and NT. -// - -#define FILE_READ_DATA ( 0x0001 ) // file & pipe -#define FILE_LIST_DIRECTORY ( 0x0001 ) // directory - -#define FILE_WRITE_DATA ( 0x0002 ) // file & pipe -#define FILE_ADD_FILE ( 0x0002 ) // directory - -#define FILE_APPEND_DATA ( 0x0004 ) // file -#define FILE_ADD_SUBDIRECTORY ( 0x0004 ) // directory -#define FILE_CREATE_PIPE_INSTANCE ( 0x0004 ) // named pipe - - -#define FILE_READ_EA ( 0x0008 ) // file & directory - -#define FILE_WRITE_EA ( 0x0010 ) // file & directory - -#define FILE_EXECUTE ( 0x0020 ) // file -#define FILE_TRAVERSE ( 0x0020 ) // directory - -#define FILE_DELETE_CHILD ( 0x0040 ) // directory - -#define FILE_READ_ATTRIBUTES ( 0x0080 ) // all - -#define FILE_WRITE_ATTRIBUTES ( 0x0100 ) // all - -#define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) - -#define FILE_GENERIC_READ (STANDARD_RIGHTS_READ |\ - FILE_READ_DATA |\ - FILE_READ_ATTRIBUTES |\ - FILE_READ_EA |\ - SYNCHRONIZE) - - -#define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\ - FILE_WRITE_DATA |\ - FILE_WRITE_ATTRIBUTES |\ - FILE_WRITE_EA |\ - FILE_APPEND_DATA |\ - SYNCHRONIZE) - - -#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ - FILE_READ_ATTRIBUTES |\ - FILE_EXECUTE |\ - SYNCHRONIZE) - -// end_access -#define FILE_SHARE_READ 0x00000001 -#define FILE_SHARE_WRITE 0x00000002 -#define FILE_SHARE_DELETE 0x00000004 -#define FILE_ATTRIBUTE_READONLY 0x00000001 -#define FILE_ATTRIBUTE_HIDDEN 0x00000002 -#define FILE_ATTRIBUTE_SYSTEM 0x00000004 -#define FILE_ATTRIBUTE_DIRECTORY 0x00000010 -#define FILE_ATTRIBUTE_ARCHIVE 0x00000020 -#define FILE_ATTRIBUTE_DEVICE 0x00000040 -#define FILE_ATTRIBUTE_NORMAL 0x00000080 -#define FILE_ATTRIBUTE_TEMPORARY 0x00000100 -#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200 -#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 -#define FILE_ATTRIBUTE_COMPRESSED 0x00000800 -#define FILE_ATTRIBUTE_OFFLINE 0x00001000 -#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000 -#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000 -#define FILE_ATTRIBUTE_INTEGRITY_STREAM 0x00008000 -#define FILE_ATTRIBUTE_VIRTUAL 0x00010000 -#define FILE_ATTRIBUTE_NO_SCRUB_DATA 0x00020000 -#define FILE_ATTRIBUTE_EA 0x00040000 -#define FILE_ATTRIBUTE_PINNED 0x00080000 -#define FILE_ATTRIBUTE_UNPINNED 0x00100000 -#define FILE_ATTRIBUTE_RECALL_ON_OPEN 0x00040000 -#define FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS 0x00400000 -#define TREE_CONNECT_ATTRIBUTE_PRIVACY 0x00004000 -#define TREE_CONNECT_ATTRIBUTE_INTEGRITY 0x00008000 -#define TREE_CONNECT_ATTRIBUTE_GLOBAL 0x00000004 -#define TREE_CONNECT_ATTRIBUTE_PINNED 0x00000002 -#define FILE_ATTRIBUTE_STRICTLY_SEQUENTIAL 0x20000000 -#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001 -#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002 -#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004 -#define FILE_NOTIFY_CHANGE_SIZE 0x00000008 -#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010 -#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020 -#define FILE_NOTIFY_CHANGE_CREATION 0x00000040 -#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100 -#define FILE_ACTION_ADDED 0x00000001 -#define FILE_ACTION_REMOVED 0x00000002 -#define FILE_ACTION_MODIFIED 0x00000003 -#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004 -#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005 -#define MAILSLOT_NO_MESSAGE ((DWORD)-1) -#define MAILSLOT_WAIT_FOREVER ((DWORD)-1) -#define FILE_CASE_SENSITIVE_SEARCH 0x00000001 -#define FILE_CASE_PRESERVED_NAMES 0x00000002 -#define FILE_UNICODE_ON_DISK 0x00000004 -#define FILE_PERSISTENT_ACLS 0x00000008 -#define FILE_FILE_COMPRESSION 0x00000010 -#define FILE_VOLUME_QUOTAS 0x00000020 -#define FILE_SUPPORTS_SPARSE_FILES 0x00000040 -#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080 -#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100 -#define FILE_RETURNS_CLEANUP_RESULT_INFO 0x00000200 -#define FILE_SUPPORTS_POSIX_UNLINK_RENAME 0x00000400 - - - - -#define FILE_VOLUME_IS_COMPRESSED 0x00008000 -#define FILE_SUPPORTS_OBJECT_IDS 0x00010000 -#define FILE_SUPPORTS_ENCRYPTION 0x00020000 -#define FILE_NAMED_STREAMS 0x00040000 -#define FILE_READ_ONLY_VOLUME 0x00080000 -#define FILE_SEQUENTIAL_WRITE_ONCE 0x00100000 -#define FILE_SUPPORTS_TRANSACTIONS 0x00200000 -#define FILE_SUPPORTS_HARD_LINKS 0x00400000 -#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000 -#define FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000 -#define FILE_SUPPORTS_USN_JOURNAL 0x02000000 -#define FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000 -#define FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000 -#define FILE_SUPPORTS_SPARSE_VDL 0x10000000 -#define FILE_DAX_VOLUME 0x20000000 -#define FILE_SUPPORTS_GHOSTING 0x40000000 - -#define FILE_INVALID_FILE_ID ((LONGLONG)-1LL) -typedef struct _FILE_ID_128 { - BYTE Identifier[16]; -} FILE_ID_128, *PFILE_ID_128; - -// -// Define the file notification information structure -// - -typedef struct _FILE_NOTIFY_INFORMATION { - DWORD NextEntryOffset; - DWORD Action; - DWORD FileNameLength; - WCHAR FileName[1]; -} FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_INFORMATION; - -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN10_RS3) -typedef struct _FILE_NOTIFY_EXTENDED_INFORMATION { - DWORD NextEntryOffset; - DWORD Action; - LARGE_INTEGER CreationTime; - LARGE_INTEGER LastModificationTime; - LARGE_INTEGER LastChangeTime; - LARGE_INTEGER LastAccessTime; - LARGE_INTEGER AllocatedLength; - LARGE_INTEGER FileSize; - DWORD FileAttributes; - DWORD ReparsePointTag; - LARGE_INTEGER FileId; - LARGE_INTEGER ParentFileId; - DWORD FileNameLength; - WCHAR FileName[1]; -} FILE_NOTIFY_EXTENDED_INFORMATION, *PFILE_NOTIFY_EXTENDED_INFORMATION; -#endif - - -// -// Flag definitions for Flags in FILE_CASE_SENSITIVE_INFO. -// - -#define FILE_CS_FLAG_CASE_SENSITIVE_DIR 0x00000001 - - -// -// Define segment buffer structure for scatter/gather read/write. -// - -typedef union _FILE_SEGMENT_ELEMENT { - PVOID64 Buffer; - ULONGLONG Alignment; -}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT; - -#if (NTDDI_VERSION >= NTDDI_WIN8) - -// -// Flag definitions for NtFlushBuffersFileEx -// -// If none of the below flags are specified the following will occur for a -// given file handle: -// - Write any modified data for the given file from the Windows in-memory -// cache. -// - Commit all pending metadata changes for the given file from the -// Windows in-memory cache. -// - Send a SYNC command to the underlying storage device to commit all -// written data in the devices cache to persistent storage. -// -// If a volume handle is specified: -// - Write all modified data for all files on the volume from the Windows -// in-memory cache. -// - Commit all pending metadata changes for all files on the volume from -// the Windows in-memory cache. -// - Send a SYNC command to the underlying storage device to commit all -// written data in the devices cache to persistent storage. -// -// This is equivalent to how NtFlushBuffersFile has always worked. -// - -// -// If set, this operation will write the data for the given file from the -// Windows in-memory cache. This will NOT commit any associated metadata -// changes. This will NOT send a SYNC to the storage device to flush its -// cache. Not supported on volume handles. Only supported by the NTFS -// filesystem. -// - -#define FLUSH_FLAGS_FILE_DATA_ONLY 0x00000001 - -// -// If set, this operation will commit both the data and metadata changes for -// the given file from the Windows in-memory cache. This will NOT send a SYNC -// to the storage device to flush its cache. Not supported on volume handles. -// Only supported by the NTFS filesystem. -// - -#define FLUSH_FLAGS_NO_SYNC 0x00000002 - -#endif // (NTDDI_VERSION >= NTDDI_WIN8) - -#if (NTDDI_VERSION >= NTDDI_WIN10_RS1) - -// -// If set, this operation will write the data for the given file from the -// Windows in-memory cache. It will also try to skip updating the timestamp -// as much as possible. This will send a SYNC to the storage device to flush its -// cache. Not supported on volume or directory handles. Only supported by the NTFS -// filesystem. -// - -#define FLUSH_FLAGS_FILE_DATA_SYNC_ONLY 0x00000004 - -#endif // (NTDDI_VERSION >= NTDDI_WIN10_RS1) - - -// -// The reparse GUID structure is used by all 3rd party layered drivers to -// store data in a reparse point. For non-Microsoft tags, The GUID field -// cannot be GUID_NULL. -// The constraints on reparse tags are defined below. -// Microsoft tags can also be used with this format of the reparse point buffer. -// - -typedef struct _REPARSE_GUID_DATA_BUFFER { - DWORD ReparseTag; - WORD ReparseDataLength; - WORD Reserved; - GUID ReparseGuid; - struct { - BYTE DataBuffer[1]; - } GenericReparseBuffer; -} REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER; - -#define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE UFIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer) - -// -// Maximum allowed size of the reparse data. -// - -#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 ) - -// -// Predefined reparse tags. -// These tags need to avoid conflicting with IO_REMOUNT defined in ntos\inc\io.h -// - -#define IO_REPARSE_TAG_RESERVED_ZERO (0) -#define IO_REPARSE_TAG_RESERVED_ONE (1) -#define IO_REPARSE_TAG_RESERVED_TWO (2) - -// -// The value of the following constant needs to satisfy the following conditions: -// (1) Be at least as large as the largest of the reserved tags. -// (2) Be strictly smaller than all the tags in use. -// - -#define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_TWO - -// -// The reparse tags are a DWORD. The 32 bits are laid out as follows: -// -// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 -// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -// +-+-+-+-+-----------------------+-------------------------------+ -// |M|R|N|D| Reserved bits | Reparse Tag Value | -// +-+-+-+-+-----------------------+-------------------------------+ -// -// M is the Microsoft bit. When set to 1, it denotes a tag owned by Microsoft. -// All ISVs must use a tag with a 0 in this position. -// Note: If a Microsoft tag is used by non-Microsoft software, the -// behavior is not defined. -// -// R is reserved. Must be zero for non-Microsoft tags. -// -// N is name surrogate. When set to 1, the file represents another named -// entity in the system. -// -// D is the directory bit. When set to 1, indicates that any directory -// with this reparse tag can have children. Has no special meaning when used -// on a non-directory file. Not compatible with the name surrogate bit. -// -// The M and N bits are OR-able. -// The following macros check for the M and N bit values: -// - -// -// Macro to determine whether a reparse point tag corresponds to a tag -// owned by Microsoft. -// - -#define IsReparseTagMicrosoft(_tag) ( \ - ((_tag) & 0x80000000) \ - ) - -// -// Macro to determine whether a reparse point tag is a name surrogate -// - -#define IsReparseTagNameSurrogate(_tag) ( \ - ((_tag) & 0x20000000) \ - ) - -// -// Macro to determine whether a directory with this reparse point can have -// children. -// - -#define IsReparseTagDirectory(_tag) ( \ - ((_tag) & 0x10000000) \ - ) - -#define IO_REPARSE_TAG_MOUNT_POINT (0xA0000003L) -#define IO_REPARSE_TAG_HSM (0xC0000004L) -#define IO_REPARSE_TAG_HSM2 (0x80000006L) -#define IO_REPARSE_TAG_SIS (0x80000007L) -#define IO_REPARSE_TAG_WIM (0x80000008L) -#define IO_REPARSE_TAG_CSV (0x80000009L) -#define IO_REPARSE_TAG_DFS (0x8000000AL) -#define IO_REPARSE_TAG_SYMLINK (0xA000000CL) -#define IO_REPARSE_TAG_DFSR (0x80000012L) -#define IO_REPARSE_TAG_DEDUP (0x80000013L) -#define IO_REPARSE_TAG_NFS (0x80000014L) -#define IO_REPARSE_TAG_FILE_PLACEHOLDER (0x80000015L) -#define IO_REPARSE_TAG_WOF (0x80000017L) -#define IO_REPARSE_TAG_WCI (0x80000018L) -#define IO_REPARSE_TAG_WCI_1 (0x90001018L) -#define IO_REPARSE_TAG_GLOBAL_REPARSE (0xA0000019L) -#define IO_REPARSE_TAG_CLOUD (0x9000001AL) -#define IO_REPARSE_TAG_CLOUD_1 (0x9000101AL) -#define IO_REPARSE_TAG_CLOUD_2 (0x9000201AL) -#define IO_REPARSE_TAG_CLOUD_3 (0x9000301AL) -#define IO_REPARSE_TAG_CLOUD_4 (0x9000401AL) -#define IO_REPARSE_TAG_CLOUD_5 (0x9000501AL) -#define IO_REPARSE_TAG_CLOUD_6 (0x9000601AL) -#define IO_REPARSE_TAG_CLOUD_7 (0x9000701AL) -#define IO_REPARSE_TAG_CLOUD_8 (0x9000801AL) -#define IO_REPARSE_TAG_CLOUD_9 (0x9000901AL) -#define IO_REPARSE_TAG_CLOUD_A (0x9000A01AL) -#define IO_REPARSE_TAG_CLOUD_B (0x9000B01AL) -#define IO_REPARSE_TAG_CLOUD_C (0x9000C01AL) -#define IO_REPARSE_TAG_CLOUD_D (0x9000D01AL) -#define IO_REPARSE_TAG_CLOUD_E (0x9000E01AL) -#define IO_REPARSE_TAG_CLOUD_F (0x9000F01AL) -#define IO_REPARSE_TAG_CLOUD_MASK (0x0000F000L) -#define IO_REPARSE_TAG_APPEXECLINK (0x8000001BL) -#define IO_REPARSE_TAG_PROJFS (0x9000001CL) -#define IO_REPARSE_TAG_STORAGE_SYNC (0x8000001EL) -#define IO_REPARSE_TAG_WCI_TOMBSTONE (0xA000001FL) -#define IO_REPARSE_TAG_UNHANDLED (0x80000020L) -#define IO_REPARSE_TAG_ONEDRIVE (0x80000021L) -#define IO_REPARSE_TAG_PROJFS_TOMBSTONE (0xA0000022L) -#define IO_REPARSE_TAG_AF_UNIX (0x80000023L) - -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) - -//======================= FSCTL_SCRUB_DATA ============================= - -#define SCRUB_DATA_INPUT_FLAG_RESUME 0x00000001 -#define SCRUB_DATA_INPUT_FLAG_SKIP_IN_SYNC 0x00000002 -#define SCRUB_DATA_INPUT_FLAG_SKIP_NON_INTEGRITY_DATA 0x00000004 -#define SCRUB_DATA_INPUT_FLAG_IGNORE_REDUNDANCY 0x00000008 -#define SCRUB_DATA_INPUT_FLAG_SKIP_DATA 0x00000010 -#define SCRUB_DATA_INPUT_FLAG_SCRUB_BY_OBJECT_ID 0x00000020 - -#define SCRUB_DATA_OUTPUT_FLAG_INCOMPLETE 0x00000001 - -#define SCRUB_DATA_OUTPUT_FLAG_NON_USER_DATA_RANGE 0x00010000 -#if (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE) -#define SCRUB_DATA_OUTPUT_FLAG_PARITY_EXTENT_DATA_RETURNED 0x00020000 -#define SCRUB_DATA_OUTPUT_FLAG_RESUME_CONTEXT_LENGTH_SPECIFIED 0x00040000 -#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINBLUE */ - -typedef struct _SCRUB_DATA_INPUT { - - // - // sizeof(SCRUB_DATA_INPUT) - // - - DWORD Size; - - // - // Zero for the initial call. - // - // SCRUB_DATA_INPUT_FLAG_RESUME has to be specified when - // ResumeContext is provided from the previous call - // - - DWORD Flags; - - // - // Maximum number of IOs in a single call. This is a hint to a - // file system to halt the operation with a restart context if the - // operation takes too long. - // - - DWORD MaximumIos; - - // - // 16 Byte object id. Only used if SCRUB_DATA_INPUT_FLAG_SCRUB_BY_OBJECT_ID - // is specified via FSCTL_SCRUB_UNDISCOVERABLE_ID. Array of DWORDs to - // preserve previous alignment. - // - - DWORD ObjectId[4]; - - // - // Reserved - // - - DWORD Reserved[25]; - - // - // Opaque data returned from the previous call to restart the - // operation. Only valid when SCRUB_DATA_FLAG_RESUME is set - // at Flags field. This offset needs to match that of SCRUB_DATA_OUTPUT. - // - - BYTE ResumeContext[816]; - -} SCRUB_DATA_INPUT, *PSCRUB_DATA_INPUT; - -#if (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE) - -typedef struct _SCRUB_PARITY_EXTENT { - - LONGLONG Offset; - - ULONGLONG Length; - -} SCRUB_PARITY_EXTENT, *PSCRUB_PARITY_EXTENT; - -typedef struct _SCRUB_PARITY_EXTENT_DATA { - - // - // sizeof(SCRUB_PARITY_EXTENT_DATA) - // - - WORD Size; - - // - // Reserved - // - - WORD Flags; - - // - // Number of parity extents - // - - WORD NumberOfParityExtents; - - // - // Maximum number of parity extents in ParityExtents buffer - // - - WORD MaximumNumberOfParityExtents; - - // - // Output buffer for parity extents - // - - SCRUB_PARITY_EXTENT ParityExtents[ANYSIZE_ARRAY]; - -} SCRUB_PARITY_EXTENT_DATA, *PSCRUB_PARITY_EXTENT_DATA; - -#endif /* (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE) */ - -typedef struct _SCRUB_DATA_OUTPUT { - - // - // sizeof(SCRUB_DATA_OUTPUT) - // - - DWORD Size; - - // - // Output Flags - // - // SCRUB_DATA_OUTPUT_FLAG_INCOMPLETE will be set if there are - // remaining ranges. ResumeContext provided for the subsequent - // call. - // - - DWORD Flags; - - // - // Operational status - // - - DWORD Status; - - // - // Offset of the error range of the user data where the operational errors were found. - // This value may be -1 if the error were found in non-user data area - // - - ULONGLONG ErrorFileOffset; - - // - // Length of the error range of the user data where the operational errors were found. - // This value may be 0 if the error were found in non-user data area - // - - ULONGLONG ErrorLength; - - // - // Number of bytes successfully repaired in the operational error range - // - - ULONGLONG NumberOfBytesRepaired; - - // - // Number of bytes failed due to an error in the operational error range - // - - ULONGLONG NumberOfBytesFailed; - - // - // Reference number for the file system specific internal file - // - - ULONGLONG InternalFileReference; - -#if (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE) - - // - // Resume context length - // - // Only valid if SCRUB_DATA_OUTPUT_FLAG_RESUME_CONTEXT_LENGTH_SPECIFIED - // is specified in the Flags. - // - - WORD ResumeContextLength; - - // - // Offset for the parity extent data in the output buffer - // Only valid if SCRUB_DATA_OUTPUT_FLAG_PARITY_EXTENT_DATA_RETURNED - // is specified in the Flags. - // - - WORD ParityExtentDataOffset; - - // - // Reserved - // - - DWORD Reserved[9]; - -#else /* (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE) */ - - // - // Reserved - // - - DWORD Reserved[10]; - -#endif /* (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE) */ - -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN10_RS5) - - // - // Number of bytes of metadata processed - // - - ULONGLONG NumberOfMetadataBytesProcessed; - - // - // Number of bytes of data processed - // - - ULONGLONG NumberOfDataBytesProcessed; - - // - // Total number of bytes of metadata in use - // - - ULONGLONG TotalNumberOfMetadataBytesInUse; - - // - // Total number of bytes of data in use - // - - ULONGLONG TotalNumberOfDataBytesInUse; - -#endif - - // - // Opaque data that the file system returns to the user so that - // subsequent call can use this data to resume from the previous - // point for the operation. - // - // Resume operation can be requested on a different handle and - // across the reboot. However, file system may not honor the - // resume context if not feasible and start from the beginning. - // - // This field is only valid when SCRUB_DATA_OUTPUT_FLAG_INCOMPLETE - // is set. It has to be last in the structure. - // - - BYTE ResumeContext[816]; - -} SCRUB_DATA_OUTPUT, *PSCRUB_DATA_OUTPUT; - -#endif /*_WIN32_WINNT >= _WIN32_WINNT_WIN8 */ - -#if (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE) -// -//=============== FSCTL_QUERY_SHARED_VIRTUAL_DISK_SUPPORT ==================== -// - -// -// Whether the file system supports shared virtual disks. -// -typedef enum _SharedVirtualDiskSupportType -{ - // - // Shared virtual disks are not supported. - // - SharedVirtualDisksUnsupported = 0, - - // - // Shared virtual disks are supported. - // - SharedVirtualDisksSupported = 1, - - // - // The target device supports taking virtual disk - // snapshots. - // - SharedVirtualDiskSnapshotsSupported = 3, - - // - // The target device supports Continuous Data - // Protection (log based) snapshots. - // - SharedVirtualDiskCDPSnapshotsSupported = 7 -} SharedVirtualDiskSupportType; - -typedef enum _SharedVirtualDiskHandleState -{ - // - // The file handle is not related to a shared virtual disk. - // - SharedVirtualDiskHandleStateNone = 0, - - // - // This handle is for the same file where at least one handle is - // accessing the file in shared mode. - // - SharedVirtualDiskHandleStateFileShared = 1, - - // - // This handle is currently being used to access a shared - // virtual disk. - // - SharedVirtualDiskHandleStateHandleShared = 3 -} SharedVirtualDiskHandleState; - -// -// Response to FSCTL_QUERY_SHARED_VIRTUAL_DISK_SUPPORT that indicates the level -// of support for shared virtual disks on the target file system. -// -typedef struct _SHARED_VIRTUAL_DISK_SUPPORT { - // - // One or more of the above SharedVirtualDiskSupportType flags that indicate the - // level of shared virtual disk support on this file system. - // - SharedVirtualDiskSupportType SharedVirtualDiskSupport; - - // - // The state of the current shared virtual disk handle. This is one or more of the - // above SharedVirtualDiskHandleState flags. - // - SharedVirtualDiskHandleState HandleState; -} SHARED_VIRTUAL_DISK_SUPPORT, *PSHARED_VIRTUAL_DISK_SUPPORT; - -// -// Determines if the provided virtual disk handle state, from FSCTL_QUERY_SHARED_VIRTUAL_DISK_SUPPORT, -// indicates that the target virtual disk file is opened in shared mode. -// -#define IsVirtualDiskFileShared(HandleState) (((HandleState) & SharedVirtualDiskHandleStateFileShared) != 0) - -#endif // (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE) - -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN10_RS5) - -// -//=============== FSCTL_REARRANGE_FILE ==================== -// - -// -// Input structure for FSCTL_REARRANGE_FILE -// - -typedef struct _REARRANGE_FILE_DATA { - - // - // Cluster-aligned byte offset of the base of the contiguous source region - // in the source file to move to the target location of the target file. - // - ULONGLONG SourceStartingOffset; - - // - // Cluster-aligned byte offset of the point to insert the source region. - // - ULONGLONG TargetOffset; - - // - // Alternate file to move the source region clusters from; - // if NULL, the source region is from the same file. - // - HANDLE SourceFileHandle; - - // - // Cluster-aligned length (in bytes) of the source region. - // - DWORD Length; - - // - // Flags - reserved for future definition and must be zero. - // - DWORD Flags; - -} REARRANGE_FILE_DATA, *PREARRANGE_FILE_DATA; - -#if defined(_WIN64) -// -// 32/64 Bit thunking support structure -// - -typedef struct _REARRANGE_FILE_DATA32 { - - ULONGLONG SourceStartingOffset; - ULONGLONG TargetOffset; - UINT32 SourceFileHandle; - DWORD Length; - DWORD Flags; - -} REARRANGE_FILE_DATA32, *PREARRANGE_FILE_DATA32; -#endif // defined(_WIN64) - -#endif /* (_WIN32_WINNT >= _WIN32_WINNT_WIN10_RS5) */ - -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) -// -//=============== FSCTL_SHUFFLE_FILE ==================== -// - -#define SHUFFLE_FILE_FLAG_SKIP_INITIALIZING_NEW_CLUSTERS (0x00000001) - -// -// Input structure for FSCTL_SHUFFLE_FILE -// - -typedef struct _SHUFFLE_FILE_DATA { - - LONGLONG StartingOffset; - LONGLONG Length; - DWORD Flags; - -} SHUFFLE_FILE_DATA, *PSHUFFLE_FILE_DATA; - -#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN8) - -// begin_access - -// -// I/O Completion Specific Access Rights. -// - -#define IO_COMPLETION_MODIFY_STATE 0x0002 -#define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) - -#define IO_QOS_MAX_RESERVATION 1000000000ULL - - -// -// Some applications include both ntioapi_x.h and winioctl.h -// - -#ifndef SMB_CCF_APP_INSTANCE_EA_NAME -#define SMB_CCF_APP_INSTANCE_EA_NAME "ClusteredApplicationInstance" -#endif //SMB_CCF_APP_INSTANCE_EA_NAME - -#ifndef _NETWORK_APP_INSTANCE_EA_DEFINED -#define _NETWORK_APP_INSTANCE_EA_DEFINED - -#if (NTDDI_VERSION >= NTDDI_WIN10) - -// -// Define the SMB Cluster Client Failover AppInstance Extended Attribute name -// newer version of input payload assumes that EA is not just a GUID, -// but instead is a structure that contains additional information -// - -// -// Is used only when file is opened directly on CSVFS. This flag is ignored when file -// is opened over SMB. -// Tells CSVFS that this file open should be valid only on coordinating node. -// If open comes to CSVFS, and this node is not a coordinating then open would fail. -// If file is opened, and coordinating node is moved then file open will be invalidated -// -#ifndef NETWORK_APP_INSTANCE_CSV_FLAGS_VALID_ONLY_IF_CSV_COORDINATOR -#define NETWORK_APP_INSTANCE_CSV_FLAGS_VALID_ONLY_IF_CSV_COORDINATOR 0x00000001 -#endif //NETWORK_APP_INSTANCE_CSV_FLAGS_VALID_ONLY_IF_CSV_COORDINATOR - -typedef struct _NETWORK_APP_INSTANCE_EA { - - // - // The caller places a GUID that should always be unique for a single instance of - // the application. - // - - GUID AppInstanceID; - - // - // Combination of the NETWORK_APP_INSTANCE_CSV_FLAGS_* flags - // - - DWORD CsvFlags; - -} NETWORK_APP_INSTANCE_EA, *PNETWORK_APP_INSTANCE_EA; - -#endif // (NTDDI_VERSION >= NTDDI_WIN10) - -#endif //_NETWORK_APP_INSTANCE_EA_DEFINED - -// begin_access - -// -// Object Manager Symbolic Link Specific Access Rights. -// - -#define DUPLICATE_CLOSE_SOURCE 0x00000001 -#define DUPLICATE_SAME_ACCESS 0x00000002 - -// -// ========================================= -// Define GUIDs which represent well-known power schemes -// ========================================= -// - -// -// Maximum Power Savings - indicates that very aggressive power savings measures will be used to help -// stretch battery life. -// -// {a1841308-3541-4fab-bc81-f71556f20b4a} -// -DEFINE_GUID( GUID_MAX_POWER_SAVINGS, 0xA1841308, 0x3541, 0x4FAB, 0xBC, 0x81, 0xF7, 0x15, 0x56, 0xF2, 0x0B, 0x4A ); - -// -// No Power Savings - indicates that almost no power savings measures will be used. -// -// {8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c} -// -DEFINE_GUID( GUID_MIN_POWER_SAVINGS, 0x8C5E7FDA, 0xE8BF, 0x4A96, 0x9A, 0x85, 0xA6, 0xE2, 0x3A, 0x8C, 0x63, 0x5C ); - -// -// Typical Power Savings - indicates that fairly aggressive power savings measures will be used. -// -// {381b4222-f694-41f0-9685-ff5bb260df2e} -// -DEFINE_GUID( GUID_TYPICAL_POWER_SAVINGS, 0x381B4222, 0xF694, 0x41F0, 0x96, 0x85, 0xFF, 0x5B, 0xB2, 0x60, 0xDF, 0x2E ); - -// -// This is a special GUID that represents "no subgroup" of settings. That is, it indicates -// that settings that are in the root of the power policy hierarchy as opposed to settings -// that are buried under a subgroup of settings. This should be used when querying for -// power settings that may not fall into a subgroup. -// -DEFINE_GUID( NO_SUBGROUP_GUID, 0xFEA3413E, 0x7E05, 0x4911, 0x9A, 0x71, 0x70, 0x03, 0x31, 0xF1, 0xC2, 0x94 ); - -// -// This is a special GUID that represents "every power scheme". That is, it indicates -// that any write to this power scheme should be reflected to every scheme present. -// This allows users to write a single setting once and have it apply to all schemes. They -// can then apply custom settings to specific power schemes that they care about. -// -DEFINE_GUID( ALL_POWERSCHEMES_GUID, 0x68A1E95E, 0x13EA, 0x41E1, 0x80, 0x11, 0x0C, 0x49, 0x6C, 0xA4, 0x90, 0xB0 ); - -// -// This is a special GUID that represents a 'personality' that each power scheme will have. -// In other words, each power scheme will have this key indicating "I'm most like *this* base -// power scheme." This individual setting will have one of three settings: -// GUID_MAX_POWER_SAVINGS -// GUID_MIN_POWER_SAVINGS -// GUID_TYPICAL_POWER_SAVINGS -// -// This allows several features: -// 1. Drivers and applications can register for notification of this GUID. So when this power -// scheme is activiated, this GUID's setting will be sent across the system and drivers/applications -// can see "GUID_MAX_POWER_SAVINGS" which will tell them in a generic fashion "get real aggressive -// about conserving power". -// 2. UserB may install a driver or application which creates power settings, and UserB may modify -// those power settings. Now UserA logs in. How does he see those settings? They simply don't -// exist in his private power key. Well they do exist over in the system power key. When we -// enumerate all the power settings in this system power key and don't find a corresponding entry -// in the user's private power key, then we can go look at this "personality" key in the users -// power scheme. We can then go get a default value for the power setting, depending on which -// "personality" power scheme is being operated on. Here's an example: -// A. UserB installs an application that creates a power setting Seetting1 -// B. UserB changes Setting1 to have a value of 50 because that's one of the possible settings -// available for setting1. -// C. UserB logs out -// D. UserA logs in and his active power scheme is some custom scheme that was derived from -// the GUID_TYPICAL_POWER_SAVINGS. But remember that UserA has no setting1 in his -// private power key. -// E. When activating UserA's selected power scheme, all power settings in the system power key will -// be enumerated (including Setting1). -// F. The power manager will see that UserA has no Setting1 power setting in his private power scheme. -// G. The power manager will query UserA's power scheme for its personality and retrieve -// GUID_TYPICAL_POWER_SAVINGS. -// H. The power manager then looks in Setting1 in the system power key and looks in its set of default -// values for the corresponding value for GUID_TYPICAL_POWER_SAVINGS power schemes. -// I. This derived power setting is applied. -DEFINE_GUID( GUID_POWERSCHEME_PERSONALITY, 0x245D8541, 0x3943, 0x4422, 0xB0, 0x25, 0x13, 0xA7, 0x84, 0xF6, 0x79, 0xB7 ); - -// -// Define a special GUID which will be used to define the active power scheme. -// User will register for this power setting GUID, and when the active power -// scheme changes, they'll get a callback where the payload is the GUID -// representing the active powerscheme. -// ( 31F9F286-5084-42FE-B720-2B0264993763 } -// -DEFINE_GUID( GUID_ACTIVE_POWERSCHEME, 0x31F9F286, 0x5084, 0x42FE, 0xB7, 0x20, 0x2B, 0x02, 0x64, 0x99, 0x37, 0x63 ); - -// -// ========================================= -// Define GUIDs which represent well-known power settings -// ========================================= -// - -// Idle resiliency settings -// ------------------------- -// -// Specifies the subgroup which will contain all of the idle resiliency -// settings for a single policy. -// -// {2E601130-5351-4d9d-8E04-252966BAD054} -DEFINE_GUID(GUID_IDLE_RESILIENCY_SUBGROUP, 0x2e601130, 0x5351, 0x4d9d, 0x8e, 0x4, 0x25, 0x29, 0x66, 0xba, 0xd0, 0x54); - -// -// Specifies the maximum clock interrupt period (in ms) -// -// N.B. This power setting is DEPRECATED. -// -// {C42B79AA-AA3A-484b-A98F-2CF32AA90A28} -DEFINE_GUID(GUID_IDLE_RESILIENCY_PERIOD, 0xc42b79aa, 0xaa3a, 0x484b, 0xa9, 0x8f, 0x2c, 0xf3, 0x2a, 0xa9, 0xa, 0x28); - -// -// Specifies the deep sleep policy setting. -// This is intended to override the GUID_IDLE_RESILIENCY_PERIOD -// {d502f7ee-1dc7-4efd-a55d-f04b6f5c0545} -DEFINE_GUID(GUID_DEEP_SLEEP_ENABLED, 0xd502f7ee, 0x1dc7, 0x4efd, 0xa5, 0x5d, 0xf0, 0x4b, 0x6f, 0x5c, 0x5, 0x45); - -// -// Specifies the platform idle state index associated with idle resiliency -// period. -// -// N.B. This power setting is DEPRECATED. -// -// {D23F2FB8-9536-4038-9C94-1CE02E5C2152} -DEFINE_GUID(GUID_DEEP_SLEEP_PLATFORM_STATE, 0xd23f2fb8, 0x9536, 0x4038, 0x9c, 0x94, 0x1c, 0xe0, 0x2e, 0x5c, 0x21, 0x52); - -// -// Specifies (in milliseconds) how long we wait after the last disk access -// before we power off the disk in case when IO coalescing is active. -// -// {C36F0EB4-2988-4a70-8EEE-0884FC2C2433} -DEFINE_GUID(GUID_DISK_COALESCING_POWERDOWN_TIMEOUT, 0xc36f0eb4, 0x2988, 0x4a70, 0x8e, 0xee, 0x8, 0x84, 0xfc, 0x2c, 0x24, 0x33); - -// -// Specifies (in seconds) how long we wait after the CS Enter before -// we deactivate execution required request. -// -// 0 : implies execution power requests are disabled and have no effect -// -1 : implies execution power requests are never deactivated -// -// Note: Execution required power requests are mapped into system required -// power requests on non-AoAc machines and this value has no effect. -// -// {3166BC41-7E98-4e03-B34E-EC0F5F2B218E} -DEFINE_GUID(GUID_EXECUTION_REQUIRED_REQUEST_TIMEOUT, 0x3166bc41, 0x7e98, 0x4e03, 0xb3, 0x4e, 0xec, 0xf, 0x5f, 0x2b, 0x21, 0x8e); - - -// Video settings -// -------------- -// -// Specifies the subgroup which will contain all of the video -// settings for a single policy. -// -// {7516b95f-f776-4464-8c53-06167f40cc99} -// -DEFINE_GUID( GUID_VIDEO_SUBGROUP, 0x7516B95F, 0xF776, 0x4464, 0x8C, 0x53, 0x06, 0x16, 0x7F, 0x40, 0xCC, 0x99 ); - -// -// Specifies (in seconds) how long we wait after the last user input has been -// received before we power off the video. -// -// {3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e} -// -DEFINE_GUID( GUID_VIDEO_POWERDOWN_TIMEOUT, 0x3C0BC021, 0xC8A8, 0x4E07, 0xA9, 0x73, 0x6B, 0x14, 0xCB, 0xCB, 0x2B, 0x7E ); - -// -// Specifies whether adaptive display dimming is turned on or off. -// -// N.B. This setting is DEPRECATED in Windows 8.1 -// -// {82DBCF2D-CD67-40C5-BFDC-9F1A5CCD4663} -// -DEFINE_GUID( GUID_VIDEO_ANNOYANCE_TIMEOUT, 0x82DBCF2D, 0xCD67, 0x40C5, 0xBF, 0xDC, 0x9F, 0x1A, 0x5C, 0xCD, 0x46, 0x63 ); - -// -// Specifies how much adaptive dim time out will be increased by. -// -// N.B. This setting is DEPRECATED in Windows 8.1 -// -// {EED904DF-B142-4183-B10B-5A1197A37864} -// -DEFINE_GUID( GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE, 0xEED904DF, 0xB142, 0x4183, 0xB1, 0x0B, 0x5A, 0x11, 0x97, 0xA3, 0x78, 0x64 ); - -// -// Specifies (in seconds) how long we wait after the last user input has been -// received before we dim the video. -// -// {17aaa29b-8b43-4b94-aafe-35f64daaf1ee} -// -DEFINE_GUID( GUID_VIDEO_DIM_TIMEOUT, 0x17aaa29b, 0x8b43, 0x4b94, 0xaa, 0xfe, 0x35, 0xf6, 0x4d, 0xaa, 0xf1, 0xee); - -// -// Specifies if the operating system should use adaptive timers (based on -// previous behavior) to power down the video. -// -// {90959d22-d6a1-49b9-af93-bce885ad335b} -// -DEFINE_GUID( GUID_VIDEO_ADAPTIVE_POWERDOWN, 0x90959D22, 0xD6A1, 0x49B9, 0xAF, 0x93, 0xBC, 0xE8, 0x85, 0xAD, 0x33, 0x5B ); - -// -// Specifies if the monitor is currently being powered or not. -// -// {02731015-4510-4526-99E6-E5A17EBD1AEA} -// -DEFINE_GUID( GUID_MONITOR_POWER_ON, 0x02731015, 0x4510, 0x4526, 0x99, 0xE6, 0xE5, 0xA1, 0x7E, 0xBD, 0x1A, 0xEA ); - -// -// Monitor brightness policy when in normal state. -// -// {aded5e82-b909-4619-9949-f5d71dac0bcb} -// -DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS, 0xaded5e82L, 0xb909, 0x4619, 0x99, 0x49, 0xf5, 0xd7, 0x1d, 0xac, 0x0b, 0xcb); - -// -// Monitor brightness policy when in dim state. -// -// {f1fbfde2-a960-4165-9f88-50667911ce96} -// -DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS, 0xf1fbfde2, 0xa960, 0x4165, 0x9f, 0x88, 0x50, 0x66, 0x79, 0x11, 0xce, 0x96); - -// -// Current monitor brightness. -// -// {8ffee2c6-2d01-46be-adb9-398addc5b4ff} -// -DEFINE_GUID(GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS, 0x8ffee2c6, 0x2d01, 0x46be, 0xad, 0xb9, 0x39, 0x8a, 0xdd, 0xc5, 0xb4, 0xff); - -// -// Specifies if the operating system should use ambient light sensor to change -// adaptively the display's brightness. -// -// {FBD9AA66-9553-4097-BA44-ED6E9D65EAB8} -// -DEFINE_GUID(GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS, 0xFBD9AA66, 0x9553, 0x4097, 0xBA, 0x44, 0xED, 0x6E, 0x9D, 0x65, 0xEA, 0xB8); - -// -// Specifies a change in the current monitor's display state. -// -// {6fe69556-704a-47a0-8f24-c28d936fda47} -// -DEFINE_GUID(GUID_CONSOLE_DISPLAY_STATE, 0x6fe69556, 0x704a, 0x47a0, 0x8f, 0x24, 0xc2, 0x8d, 0x93, 0x6f, 0xda, 0x47); - -// -// Defines a guid for enabling/disabling the ability to create display required -// power requests. -// -// {A9CEB8DA-CD46-44FB-A98B-02AF69DE4623} -// -DEFINE_GUID( GUID_ALLOW_DISPLAY_REQUIRED, 0xA9CEB8DA, 0xCD46, 0x44FB, 0xA9, 0x8B, 0x02, 0xAF, 0x69, 0xDE, 0x46, 0x23 ); - -// -// Specifies the video power down timeout (in seconds) after the interactive -// console is locked (and sensors indicate UserNotPresent). Value 0 -// effectively disables this feature. -// -// {8EC4B3A5-6868-48c2-BE75-4F3044BE88A7} -// -DEFINE_GUID(GUID_VIDEO_CONSOLE_LOCK_TIMEOUT, 0x8ec4b3a5, 0x6868, 0x48c2, 0xbe, 0x75, 0x4f, 0x30, 0x44, 0xbe, 0x88, 0xa7); - -// -// Specifies power settings which will decide whether to -// prefer visual quality or battery life for an Advanced -// Color capable display -// -// {684C3E69-A4F7-4014-8754-D45179A56167} -// -DEFINE_GUID(GUID_ADVANCED_COLOR_QUALITY_BIAS, 0x684c3e69, 0xa4f7, 0x4014, 0x87, 0x54, 0xd4, 0x51, 0x79, 0xa5, 0x61, 0x67); - - -// Adaptive power behavior settings -// -------------------------------- -// -// {8619B916-E004-4dd8-9B66-DAE86F806698} -DEFINE_GUID(GUID_ADAPTIVE_POWER_BEHAVIOR_SUBGROUP, 0x8619b916, 0xe004, 0x4dd8, 0x9b, 0x66, 0xda, 0xe8, 0x6f, 0x80, 0x66, 0x98); - -// -// Specifies the input timeout (in seconds) to be used to indicate UserUnkown. -// Value 0 effectively disables this feature. -// -// {5ADBBFBC-074E-4da1-BA38-DB8B36B2C8F3} -DEFINE_GUID(GUID_NON_ADAPTIVE_INPUT_TIMEOUT, 0x5adbbfbc, 0x74e, 0x4da1, 0xba, 0x38, 0xdb, 0x8b, 0x36, 0xb2, 0xc8, 0xf3); - -// -// Specifies a change in the input controller(s) global system's state: -// e.g. enabled, suppressed, filtered. -// -// {0E98FAE9-F45A-4DE1-A757-6031F197F6EA} -DEFINE_GUID(GUID_ADAPTIVE_INPUT_CONTROLLER_STATE, 0xe98fae9, 0xf45a, 0x4de1, 0xa7, 0x57, 0x60, 0x31, 0xf1, 0x97, 0xf6, 0xea); - -// Harddisk settings -// ----------------- -// -// Specifies the subgroup which will contain all of the harddisk -// settings for a single policy. -// -DEFINE_GUID( GUID_DISK_SUBGROUP, 0x0012EE47, 0x9041, 0x4B5D, 0x9B, 0x77, 0x53, 0x5F, 0xBA, 0x8B, 0x14, 0x42 ); - -// -// Specifies a maximum power consumption level. -// -DEFINE_GUID(GUID_DISK_MAX_POWER, 0x51dea550, 0xbb38, 0x4bc4, 0x99, 0x1b, 0xea, 0xcf, 0x37, 0xbe, 0x5e, 0xc8); - -// -// Specifies (in seconds) how long we wait after the last disk access -// before we power off the disk. -// -DEFINE_GUID( GUID_DISK_POWERDOWN_TIMEOUT, 0x6738E2C4, 0xE8A5, 0x4A42, 0xB1, 0x6A, 0xE0, 0x40, 0xE7, 0x69, 0x75, 0x6E ); - -// -// Specifies (in milliseconds) how long we wait after the last disk access -// before we power off the disk taking into account if IO coalescing is active. -// -// {58E39BA8-B8E6-4EF6-90D0-89AE32B258D6} -DEFINE_GUID( GUID_DISK_IDLE_TIMEOUT, 0x58E39BA8, 0xB8E6, 0x4EF6, 0x90, 0xD0, 0x89, 0xAE, 0x32, 0xB2, 0x58, 0xD6 ); - -// -// Specifies the amount of contiguous disk activity time to ignore when -// calculating disk idleness. -// -// 80e3c60e-bb94-4ad8-bbe0-0d3195efc663 -// - -DEFINE_GUID( GUID_DISK_BURST_IGNORE_THRESHOLD, 0x80e3c60e, 0xbb94, 0x4ad8, 0xbb, 0xe0, 0x0d, 0x31, 0x95, 0xef, 0xc6, 0x63 ); - -// -// Specifies if the operating system should use adaptive timers (based on -// previous behavior) to power down the disk, -// -DEFINE_GUID( GUID_DISK_ADAPTIVE_POWERDOWN, 0x396A32E1, 0x499A, 0x40B2, 0x91, 0x24, 0xA9, 0x6A, 0xFE, 0x70, 0x76, 0x67 ); - -// System sleep settings -// --------------------- -// -// Specifies the subgroup which will contain all of the sleep -// settings for a single policy. -// { 238C9FA8-0AAD-41ED-83F4-97BE242C8F20 } -// -DEFINE_GUID( GUID_SLEEP_SUBGROUP, 0x238C9FA8, 0x0AAD, 0x41ED, 0x83, 0xF4, 0x97, 0xBE, 0x24, 0x2C, 0x8F, 0x20 ); - -// -// Specifies an idle treshold percentage (0-100). The system must be this idle -// over a period of time in order to idle to sleep. -// -// N.B. DEPRECATED IN WINDOWS 6.1 -// -DEFINE_GUID( GUID_SLEEP_IDLE_THRESHOLD, 0x81cd32e0, 0x7833, 0x44f3, 0x87, 0x37, 0x70, 0x81, 0xf3, 0x8d, 0x1f, 0x70 ); - -// -// Specifies (in seconds) how long we wait after the system is deemed -// "idle" before moving to standby (S1, S2 or S3). -// -DEFINE_GUID( GUID_STANDBY_TIMEOUT, 0x29F6C1DB, 0x86DA, 0x48C5, 0x9F, 0xDB, 0xF2, 0xB6, 0x7B, 0x1F, 0x44, 0xDA ); - -// -// Specifies (in seconds) how long the system should go back to sleep after -// waking unattended. 0 indicates that the standard standby/hibernate idle -// policy should be used instead. -// -// {7bc4a2f9-d8fc-4469-b07b-33eb785aaca0} -// -DEFINE_GUID( GUID_UNATTEND_SLEEP_TIMEOUT, 0x7bc4a2f9, 0xd8fc, 0x4469, 0xb0, 0x7b, 0x33, 0xeb, 0x78, 0x5a, 0xac, 0xa0 ); - -// -// Specifies (in seconds) how long we wait after the system is deemed -// "idle" before moving to hibernate (S4). -// -DEFINE_GUID( GUID_HIBERNATE_TIMEOUT, 0x9D7815A6, 0x7EE4, 0x497E, 0x88, 0x88, 0x51, 0x5A, 0x05, 0xF0, 0x23, 0x64 ); - -// -// Specifies whether or not Fast S4 should be enabled if the system supports it -// 94AC6D29-73CE-41A6-809F-6363BA21B47E -// -DEFINE_GUID( GUID_HIBERNATE_FASTS4_POLICY, 0x94AC6D29, 0x73CE, 0x41A6, 0x80, 0x9F, 0x63, 0x63, 0xBA, 0x21, 0xB4, 0x7E ); - -// -// Define a GUID for controlling the criticality of sleep state transitions. -// Critical sleep transitions do not query applications, services or drivers -// before transitioning the platform to a sleep state. -// -// {B7A27025-E569-46c2-A504-2B96CAD225A1} -// -DEFINE_GUID( GUID_CRITICAL_POWER_TRANSITION, 0xB7A27025, 0xE569, 0x46c2, 0xA5, 0x04, 0x2B, 0x96, 0xCA, 0xD2, 0x25, 0xA1); - -// -// Specifies if the system is entering or exiting 'away mode'. -// 98A7F580-01F7-48AA-9C0F-44352C29E5C0 -// -DEFINE_GUID( GUID_SYSTEM_AWAYMODE, 0x98A7F580, 0x01F7, 0x48AA, 0x9C, 0x0F, 0x44, 0x35, 0x2C, 0x29, 0xE5, 0xC0 ); - -// -// Specify whether away mode is allowed -// -// {25DFA149-5DD1-4736-B5AB-E8A37B5B8187} -// -DEFINE_GUID( GUID_ALLOW_AWAYMODE, 0x25dfa149, 0x5dd1, 0x4736, 0xb5, 0xab, 0xe8, 0xa3, 0x7b, 0x5b, 0x81, 0x87 ); - -// -// Defines a guid to control User Presence Prediction mode. -// -// {82011705-FB95-4D46-8D35-4042B1D20DEF} -// -DEFINE_GUID( GUID_USER_PRESENCE_PREDICTION, 0x82011705, 0xfb95, 0x4d46, 0x8d, 0x35, 0x40, 0x42, 0xb1, 0xd2, 0xd, 0xef ); - -// -// Defines a guid to control Standby Budget Grace Period. -// -// {60C07FE1-0556-45CF-9903-D56E32210242} -// -DEFINE_GUID( GUID_STANDBY_BUDGET_GRACE_PERIOD, 0x60c07fe1, 0x0556, 0x45cf, 0x99, 0x03, 0xd5, 0x6e, 0x32, 0x21, 0x2, 0x42 ); - -// -// Defines a guid to control Standby Budget Percent. -// -// {9FE527BE-1B70-48DA-930D-7BCF17B44990} -// -DEFINE_GUID( GUID_STANDBY_BUDGET_PERCENT, 0x9fe527be, 0x1b70, 0x48da, 0x93, 0x0d, 0x7b, 0xcf, 0x17, 0xb4, 0x49, 0x90 ); - -// -// Defines a guid to control Standby Reserve Grace Period. -// -// {C763EE92-71E8-4127-84EB-F6ED043A3E3D} -// -DEFINE_GUID( GUID_STANDBY_RESERVE_GRACE_PERIOD, 0xc763ee92, 0x71e8, 0x4127, 0x84, 0xeb, 0xf6, 0xed, 0x04, 0x3a, 0x3e, 0x3d ); - -// -// Defines a guid to control Standby Reserve Time. -// -// {468FE7E5-1158-46EC-88BC-5B96C9E44FD0} -// -DEFINE_GUID( GUID_STANDBY_RESERVE_TIME, 0x468FE7E5, 0x1158, 0x46EC, 0x88, 0xbc, 0x5b, 0x96, 0xc9, 0xe4, 0x4f, 0xd0 ); - -// -// Defines a guid to control Standby Reset Percentage. -// -// {49CB11A5-56E2-4AFB-9D38-3DF47872E21B} -// -DEFINE_GUID(GUID_STANDBY_RESET_PERCENT, 0x49cb11a5, 0x56e2, 0x4afb, 0x9d, 0x38, 0x3d, 0xf4, 0x78, 0x72, 0xe2, 0x1b); - -// -// Defines a guid for enabling/disabling standby (S1-S3) states. This does not -// affect hibernation (S4). -// -// {abfc2519-3608-4c2a-94ea-171b0ed546ab} -// -DEFINE_GUID( GUID_ALLOW_STANDBY_STATES, 0xabfc2519, 0x3608, 0x4c2a, 0x94, 0xea, 0x17, 0x1b, 0x0e, 0xd5, 0x46, 0xab ); - -// -// Defines a guid for enabling/disabling the ability to wake via RTC. -// -// {BD3B718A-0680-4D9D-8AB2-E1D2B4AC806D} -// -DEFINE_GUID( GUID_ALLOW_RTC_WAKE, 0xBD3B718A, 0x0680, 0x4D9D, 0x8A, 0xB2, 0xE1, 0xD2, 0xB4, 0xAC, 0x80, 0x6D ); - -// -// Defines a guid for enabling/disabling legacy RTC mitigations. -// -// {1A34BDC3-7E6B-442E-A9D0-64B6EF378E84} -// -DEFINE_GUID( GUID_LEGACY_RTC_MITIGATION, 0x1A34BDC3, 0x7E6B, 0x442E, 0xA9, 0xD0, 0x64, 0xB6, 0xEF, 0x37, 0x8E, 0x84 ); - -// -// Defines a guid for enabling/disabling the ability to create system required -// power requests. -// -// {A4B195F5-8225-47D8-8012-9D41369786E2} -// -DEFINE_GUID( GUID_ALLOW_SYSTEM_REQUIRED, 0xA4B195F5, 0x8225, 0x47D8, 0x80, 0x12, 0x9D, 0x41, 0x36, 0x97, 0x86, 0xE2 ); - -// Energy Saver settings -// --------------------- -// -// Indicates if Enegry Saver is ON or OFF. -// -// {E00958C0-C213-4ACE-AC77-FECCED2EEEA5} -// -DEFINE_GUID( GUID_POWER_SAVING_STATUS, 0xe00958c0, 0xc213, 0x4ace, 0xac, 0x77, 0xfe, 0xcc, 0xed, 0x2e, 0xee, 0xa5); - -// -// Specifies the subgroup which will contain all of the Energy Saver settings -// for a single policy. -// -// {DE830923-A562-41AF-A086-E3A2C6BAD2DA} -// -DEFINE_GUID( GUID_ENERGY_SAVER_SUBGROUP, 0xDE830923, 0xA562, 0x41AF, 0xA0, 0x86, 0xE3, 0xA2, 0xC6, 0xBA, 0xD2, 0xDA ); - -// -// Defines a guid to engage Energy Saver at specific battery charge level -// -// {E69653CA-CF7F-4F05-AA73-CB833FA90AD4} -// -DEFINE_GUID( GUID_ENERGY_SAVER_BATTERY_THRESHOLD, 0xE69653CA, 0xCF7F, 0x4F05, 0xAA, 0x73, 0xCB, 0x83, 0x3F, 0xA9, 0x0A, 0xD4 ); - -// -// Defines a guid to specify display brightness weight when Energy Saver is engaged -// -// {13D09884-F74E-474A-A852-B6BDE8AD03A8} -// -DEFINE_GUID( GUID_ENERGY_SAVER_BRIGHTNESS, 0x13D09884, 0xF74E, 0x474A, 0xA8, 0x52, 0xB6, 0xBD, 0xE8, 0xAD, 0x03, 0xA8 ); - -// -// Defines a guid to specify the Energy Saver policy -// -// {5C5BB349-AD29-4ee2-9D0B-2B25270F7A81} -// -DEFINE_GUID( GUID_ENERGY_SAVER_POLICY, 0x5c5bb349, 0xad29, 0x4ee2, 0x9d, 0xb, 0x2b, 0x25, 0x27, 0xf, 0x7a, 0x81 ); - -// System button actions -// --------------------- -// -// -// Specifies the subgroup which will contain all of the system button -// settings for a single policy. -// -DEFINE_GUID( GUID_SYSTEM_BUTTON_SUBGROUP, 0x4F971E89, 0xEEBD, 0x4455, 0xA8, 0xDE, 0x9E, 0x59, 0x04, 0x0E, 0x73, 0x47 ); - -#define POWERBUTTON_ACTION_INDEX_NOTHING 0 -#define POWERBUTTON_ACTION_INDEX_SLEEP 1 -#define POWERBUTTON_ACTION_INDEX_HIBERNATE 2 -#define POWERBUTTON_ACTION_INDEX_SHUTDOWN 3 -#define POWERBUTTON_ACTION_INDEX_TURN_OFF_THE_DISPLAY 4 - -// -// System button values which contain the PowerAction* value for each action. -// - -#define POWERBUTTON_ACTION_VALUE_NOTHING 0 -#define POWERBUTTON_ACTION_VALUE_SLEEP 2 -#define POWERBUTTON_ACTION_VALUE_HIBERNATE 3 -#define POWERBUTTON_ACTION_VALUE_SHUTDOWN 6 -#define POWERBUTTON_ACTION_VALUE_TURN_OFF_THE_DISPLAY 8 - -// Specifies (in a POWER_ACTION_POLICY structure) the appropriate action to -// take when the system power button is pressed. -// -DEFINE_GUID( GUID_POWERBUTTON_ACTION, 0x7648EFA3, 0xDD9C, 0x4E3E, 0xB5, 0x66, 0x50, 0xF9, 0x29, 0x38, 0x62, 0x80 ); - -// -// Specifies (in a POWER_ACTION_POLICY structure) the appropriate action to -// take when the system sleep button is pressed. -// -DEFINE_GUID( GUID_SLEEPBUTTON_ACTION, 0x96996BC0, 0xAD50, 0x47EC, 0x92, 0x3B, 0x6F, 0x41, 0x87, 0x4D, 0xD9, 0xEB ); - -// -// Specifies (in a POWER_ACTION_POLICY structure) the appropriate action to -// take when the system sleep button is pressed. -// { A7066653-8D6C-40A8-910E-A1F54B84C7E5 } -// -DEFINE_GUID( GUID_USERINTERFACEBUTTON_ACTION, 0xA7066653, 0x8D6C, 0x40A8, 0x91, 0x0E, 0xA1, 0xF5, 0x4B, 0x84, 0xC7, 0xE5 ); - -// -// Specifies (in a POWER_ACTION_POLICY structure) the appropriate action to -// take when the system lid is closed. -// -DEFINE_GUID( GUID_LIDCLOSE_ACTION, 0x5CA83367, 0x6E45, 0x459F, 0xA2, 0x7B, 0x47, 0x6B, 0x1D, 0x01, 0xC9, 0x36 ); -DEFINE_GUID( GUID_LIDOPEN_POWERSTATE, 0x99FF10E7, 0x23B1, 0x4C07, 0xA9, 0xD1, 0x5C, 0x32, 0x06, 0xD7, 0x41, 0xB4 ); - - -// Battery Discharge Settings -// -------------------------- -// -// Specifies the subgroup which will contain all of the battery discharge -// settings for a single policy. -// -DEFINE_GUID( GUID_BATTERY_SUBGROUP, 0xE73A048D, 0xBF27, 0x4F12, 0x97, 0x31, 0x8B, 0x20, 0x76, 0xE8, 0x89, 0x1F ); - -// -// 4 battery discharge alarm settings. -// -// GUID_BATTERY_DISCHARGE_ACTION_x - This is the action to take. It is a value -// of type POWER_ACTION -// GUID_BATTERY_DISCHARGE_LEVEL_x - This is the battery level (%) -// GUID_BATTERY_DISCHARGE_FLAGS_x - Flags defined below: -// POWER_ACTION_POLICY->EventCode flags -// BATTERY_DISCHARGE_FLAGS_EVENTCODE_MASK -// BATTERY_DISCHARGE_FLAGS_ENABLE -DEFINE_GUID( GUID_BATTERY_DISCHARGE_ACTION_0, 0x637EA02F, 0xBBCB, 0x4015, 0x8E, 0x2C, 0xA1, 0xC7, 0xB9, 0xC0, 0xB5, 0x46 ); -DEFINE_GUID( GUID_BATTERY_DISCHARGE_LEVEL_0, 0x9A66D8D7, 0x4FF7, 0x4EF9, 0xB5, 0xA2, 0x5A, 0x32, 0x6C, 0xA2, 0xA4, 0x69 ); -DEFINE_GUID( GUID_BATTERY_DISCHARGE_FLAGS_0, 0x5dbb7c9f, 0x38e9, 0x40d2, 0x97, 0x49, 0x4f, 0x8a, 0x0e, 0x9f, 0x64, 0x0f ); - -DEFINE_GUID( GUID_BATTERY_DISCHARGE_ACTION_1, 0xD8742DCB, 0x3E6A, 0x4B3C, 0xB3, 0xFE, 0x37, 0x46, 0x23, 0xCD, 0xCF, 0x06 ); -DEFINE_GUID( GUID_BATTERY_DISCHARGE_LEVEL_1, 0x8183BA9A, 0xE910, 0x48DA, 0x87, 0x69, 0x14, 0xAE, 0x6D, 0xC1, 0x17, 0x0A ); -DEFINE_GUID( GUID_BATTERY_DISCHARGE_FLAGS_1, 0xbcded951, 0x187b, 0x4d05, 0xbc, 0xcc, 0xf7, 0xe5, 0x19, 0x60, 0xc2, 0x58 ); - -DEFINE_GUID( GUID_BATTERY_DISCHARGE_ACTION_2, 0x421CBA38, 0x1A8E, 0x4881, 0xAC, 0x89, 0xE3, 0x3A, 0x8B, 0x04, 0xEC, 0xE4 ); -DEFINE_GUID( GUID_BATTERY_DISCHARGE_LEVEL_2, 0x07A07CA2, 0xADAF, 0x40D7, 0xB0, 0x77, 0x53, 0x3A, 0xAD, 0xED, 0x1B, 0xFA ); -DEFINE_GUID( GUID_BATTERY_DISCHARGE_FLAGS_2, 0x7fd2f0c4, 0xfeb7, 0x4da3, 0x81, 0x17, 0xe3, 0xfb, 0xed, 0xc4, 0x65, 0x82 ); - -DEFINE_GUID( GUID_BATTERY_DISCHARGE_ACTION_3, 0x80472613, 0x9780, 0x455E, 0xB3, 0x08, 0x72, 0xD3, 0x00, 0x3C, 0xF2, 0xF8 ); -DEFINE_GUID( GUID_BATTERY_DISCHARGE_LEVEL_3, 0x58AFD5A6, 0xC2DD, 0x47D2, 0x9F, 0xBF, 0xEF, 0x70, 0xCC, 0x5C, 0x59, 0x65 ); -DEFINE_GUID( GUID_BATTERY_DISCHARGE_FLAGS_3, 0x73613ccf, 0xdbfa, 0x4279, 0x83, 0x56, 0x49, 0x35, 0xf6, 0xbf, 0x62, 0xf3 ); - -// Processor power settings -// ------------------------ -// - -// Specifies the subgroup which will contain all of the processor -// settings for a single policy. -// -// {54533251-82be-4824-96c1-47b60b740d00} -// -DEFINE_GUID( GUID_PROCESSOR_SETTINGS_SUBGROUP, 0x54533251, 0x82BE, 0x4824, 0x96, 0xC1, 0x47, 0xB6, 0x0B, 0x74, 0x0D, 0x00 ); - -// -// Specifies various attributes that control processor performance/throttle -// states. -// -DEFINE_GUID( GUID_PROCESSOR_THROTTLE_POLICY, 0x57027304, 0x4AF6, 0x4104, 0x92, 0x60, 0xE3, 0xD9, 0x52, 0x48, 0xFC, 0x36 ); - -#define PERFSTATE_POLICY_CHANGE_IDEAL 0 -#define PERFSTATE_POLICY_CHANGE_SINGLE 1 -#define PERFSTATE_POLICY_CHANGE_ROCKET 2 -#define PERFSTATE_POLICY_CHANGE_IDEAL_AGGRESSIVE 3 - -#define PERFSTATE_POLICY_CHANGE_DECREASE_MAX PERFSTATE_POLICY_CHANGE_ROCKET -#define PERFSTATE_POLICY_CHANGE_INCREASE_MAX PERFSTATE_POLICY_CHANGE_IDEAL_AGGRESSIVE - -// -// Specifies a percentage (between 0 and 100) that the processor frequency -// should never go above. For example, if this value is set to 80, then -// the processor frequency will never be throttled above 80 percent of its -// maximum frequency by the system. -// -// {bc5038f7-23e0-4960-96da-33abaf5935ec} -// -DEFINE_GUID( GUID_PROCESSOR_THROTTLE_MAXIMUM, 0xBC5038F7, 0x23E0, 0x4960, 0x96, 0xDA, 0x33, 0xAB, 0xAF, 0x59, 0x35, 0xEC ); - -// -// Specifies a percentage (between 0 and 100) that the processor frequency -// should never go above for Processor Power Efficiency Class 1. -// For example, if this value is set to 80, then the processor frequency will -// never be throttled above 80 percent of its maximum frequency by the system. -// -// {bc5038f7-23e0-4960-96da-33abaf5935ed} -// -DEFINE_GUID( GUID_PROCESSOR_THROTTLE_MAXIMUM_1, 0xBC5038F7, 0x23E0, 0x4960, 0x96, 0xDA, 0x33, 0xAB, 0xAF, 0x59, 0x35, 0xED ); - -// -// Specifies a percentage (between 0 and 100) that the processor frequency -// should not drop below. For example, if this value is set to 50, then the -// processor frequency will never be throttled below 50 percent of its -// maximum frequency by the system. -// -// {893dee8e-2bef-41e0-89c6-b55d0929964c} -// -DEFINE_GUID( GUID_PROCESSOR_THROTTLE_MINIMUM, 0x893DEE8E, 0x2BEF, 0x41E0, 0x89, 0xC6, 0xB5, 0x5D, 0x09, 0x29, 0x96, 0x4C ); - -// -// Specifies a percentage (between 0 and 100) that the processor frequency -// should not drop below for Processor Power Efficiency Class 1. -// For example, if this value is set to 50, then the processor frequency will -// never be throttled below 50 percent of its maximum frequency by the system. -// -// {893dee8e-2bef-41e0-89c6-b55d0929964d} -// -DEFINE_GUID( GUID_PROCESSOR_THROTTLE_MINIMUM_1, 0x893DEE8E, 0x2BEF, 0x41E0, 0x89, 0xC6, 0xB5, 0x5D, 0x09, 0x29, 0x96, 0x4D ); - -// -// Specifies the maximum processor frequency (expresssed in MHz). -// - -// {75B0AE3F-BCE0-45a7-8C89-C9611C25E100} -DEFINE_GUID(GUID_PROCESSOR_FREQUENCY_LIMIT, -0x75b0ae3f, 0xbce0, 0x45a7, 0x8c, 0x89, 0xc9, 0x61, 0x1c, 0x25, 0xe1, 0x00); - -// {75B0AE3F-BCE0-45a7-8C89-C9611C25E101} -DEFINE_GUID(GUID_PROCESSOR_FREQUENCY_LIMIT_1, -0x75b0ae3f, 0xbce0, 0x45a7, 0x8c, 0x89, 0xc9, 0x61, 0x1c, 0x25, 0xe1, 0x01); - -// -// Specifies whether throttle states are allowed to be used even when -// performance states are available. -// -// {3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb} -// -DEFINE_GUID( GUID_PROCESSOR_ALLOW_THROTTLING, 0x3b04d4fd, 0x1cc7, 0x4f23, 0xab, 0x1c, 0xd1, 0x33, 0x78, 0x19, 0xc4, 0xbb ); - -#define PROCESSOR_THROTTLE_DISABLED 0 -#define PROCESSOR_THROTTLE_ENABLED 1 -#define PROCESSOR_THROTTLE_AUTOMATIC 2 - -// -// Specifies processor power settings for CState policy data -// {68F262A7-F621-4069-B9A5-4874169BE23C} -// -DEFINE_GUID( GUID_PROCESSOR_IDLESTATE_POLICY, 0x68f262a7, 0xf621, 0x4069, 0xb9, 0xa5, 0x48, 0x74, 0x16, 0x9b, 0xe2, 0x3c); - -// -// Specifies processor power settings for PerfState policy data -// {BBDC3814-18E9-4463-8A55-D197327C45C0} -// -DEFINE_GUID( GUID_PROCESSOR_PERFSTATE_POLICY, 0xBBDC3814, 0x18E9, 0x4463, 0x8A, 0x55, 0xD1, 0x97, 0x32, 0x7C, 0x45, 0xC0); - -// -// Specifies the increase busy percentage threshold that must be met before -// increasing the processor performance state. -// -// {06cadf0e-64ed-448a-8927-ce7bf90eb35d} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_THRESHOLD, 0x06cadf0e, 0x64ed, 0x448a, 0x89, 0x27, 0xce, 0x7b, 0xf9, 0x0e, 0xb3, 0x5d ); - -// -// Specifies the increase busy percentage threshold that must be met before -// increasing the processor performance state for Processor Power Efficiency -// Class 1. -// -// {06cadf0e-64ed-448a-8927-ce7bf90eb35e} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_THRESHOLD_1, 0x06cadf0e, 0x64ed, 0x448a, 0x89, 0x27, 0xce, 0x7b, 0xf9, 0x0e, 0xb3, 0x5e ); - -// -// Specifies the decrease busy percentage threshold that must be met before -// decreasing the processor performance state. -// -// {12a0ab44-fe28-4fa9-b3bd-4b64f44960a6} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_THRESHOLD, 0x12a0ab44, 0xfe28, 0x4fa9, 0xb3, 0xbd, 0x4b, 0x64, 0xf4, 0x49, 0x60, 0xa6 ); - -// -// Specifies the decrease busy percentage threshold that must be met before -// decreasing the processor performance state for Processor Power Efficiency -// Class 1. -// -// {12a0ab44-fe28-4fa9-b3bd-4b64f44960a7} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_THRESHOLD_1, 0x12a0ab44, 0xfe28, 0x4fa9, 0xb3, 0xbd, 0x4b, 0x64, 0xf4, 0x49, 0x60, 0xa7 ); - -// -// Specifies, either as ideal, single or rocket, how aggressive performance -// states should be selected when increasing the processor performance state. -// -// {465E1F50-B610-473a-AB58-00D1077DC418} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_POLICY, 0x465e1f50, 0xb610, 0x473a, 0xab, 0x58, 0x0, 0xd1, 0x7, 0x7d, 0xc4, 0x18); - -// -// Specifies, either as ideal, single or rocket, how aggressive performance -// states should be selected when increasing the processor performance state -// for Processor Power Efficiency Class 1. -// -// {465E1F50-B610-473a-AB58-00D1077DC419} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_POLICY_1, 0x465e1f50, 0xb610, 0x473a, 0xab, 0x58, 0x0, 0xd1, 0x7, 0x7d, 0xc4, 0x19); - -// -// Specifies, either as ideal, single or rocket, how aggressive performance -// states should be selected when decreasing the processor performance state. -// -// {40FBEFC7-2E9D-4d25-A185-0CFD8574BAC6} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_POLICY, 0x40fbefc7, 0x2e9d, 0x4d25, 0xa1, 0x85, 0xc, 0xfd, 0x85, 0x74, 0xba, 0xc6); - -// -// Specifies, either as ideal, single or rocket, how aggressive performance -// states should be selected when decreasing the processor performance state for -// Processor Power Efficiency Class 1. -// -// {40FBEFC7-2E9D-4d25-A185-0CFD8574BAC7} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_POLICY_1, 0x40fbefc7, 0x2e9d, 0x4d25, 0xa1, 0x85, 0xc, 0xfd, 0x85, 0x74, 0xba, 0xc7); - -// -// Specifies, in milliseconds, the minimum amount of time that must elapse after -// the last processor performance state change before increasing the processor -// performance state. -// -// {984CF492-3BED-4488-A8F9-4286C97BF5AA} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_TIME, 0x984cf492, 0x3bed, 0x4488, 0xa8, 0xf9, 0x42, 0x86, 0xc9, 0x7b, 0xf5, 0xaa); - -// -// Specifies, in milliseconds, the minimum amount of time that must elapse after -// the last processor performance state change before increasing the processor -// performance state for Processor Power Efficiency Class 1. -// -// {984CF492-3BED-4488-A8F9-4286C97BF5AB} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_TIME_1, 0x984cf492, 0x3bed, 0x4488, 0xa8, 0xf9, 0x42, 0x86, 0xc9, 0x7b, 0xf5, 0xab); - -// -// Specifies, in milliseconds, the minimum amount of time that must elapse after -// the last processor performance state change before increasing the processor -// performance state. -// -// {D8EDEB9B-95CF-4f95-A73C-B061973693C8} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_TIME, 0xd8edeb9b, 0x95cf, 0x4f95, 0xa7, 0x3c, 0xb0, 0x61, 0x97, 0x36, 0x93, 0xc8); - -// -// Specifies, in milliseconds, the minimum amount of time that must elapse after -// the last processor performance state change before increasing the processor -// performance state for Processor Power Efficiency Class 1. -// -// {D8EDEB9B-95CF-4f95-A73C-B061973693C9} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_TIME_1, 0xd8edeb9b, 0x95cf, 0x4f95, 0xa7, 0x3c, 0xb0, 0x61, 0x97, 0x36, 0x93, 0xc9); - -// -// Specifies the time, in milliseconds, that must expire before considering -// a change in the processor performance states or parked core set. -// -// {4D2B0152-7D5C-498b-88E2-34345392A2C5} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_TIME_CHECK, 0x4d2b0152, 0x7d5c, 0x498b, 0x88, 0xe2, 0x34, 0x34, 0x53, 0x92, 0xa2, 0xc5); - -// -// Specifies how the processor should manage performance and efficiency -// tradeoffs when boosting frequency above the maximum. -// -// {45BCC044-D885-43e2-8605-EE0EC6E96B59} -// -DEFINE_GUID(GUID_PROCESSOR_PERF_BOOST_POLICY, -0x45bcc044, 0xd885, 0x43e2, 0x86, 0x5, 0xee, 0xe, 0xc6, 0xe9, 0x6b, 0x59); - -#define PROCESSOR_PERF_BOOST_POLICY_DISABLED 0 -#define PROCESSOR_PERF_BOOST_POLICY_MAX 100 - -// -// Specifies how a processor opportunistically increases frequency above -// the maximum when operating contitions allow it to do so safely. -// -// {BE337238-0D82-4146-A960-4F3749D470C7} -// -DEFINE_GUID(GUID_PROCESSOR_PERF_BOOST_MODE, -0xbe337238, 0xd82, 0x4146, 0xa9, 0x60, 0x4f, 0x37, 0x49, 0xd4, 0x70, 0xc7); - -#define PROCESSOR_PERF_BOOST_MODE_DISABLED 0 -#define PROCESSOR_PERF_BOOST_MODE_ENABLED 1 -#define PROCESSOR_PERF_BOOST_MODE_AGGRESSIVE 2 -#define PROCESSOR_PERF_BOOST_MODE_EFFICIENT_ENABLED 3 -#define PROCESSOR_PERF_BOOST_MODE_EFFICIENT_AGGRESSIVE 4 -#define PROCESSOR_PERF_BOOST_MODE_AGGRESSIVE_AT_GUARANTEED 5 -#define PROCESSOR_PERF_BOOST_MODE_EFFICIENT_AGGRESSIVE_AT_GUARANTEED 6 -#define PROCESSOR_PERF_BOOST_MODE_MAX PROCESSOR_PERF_BOOST_MODE_EFFICIENT_AGGRESSIVE_AT_GUARANTEED - -// -// Specifies whether or not a procesor should autonomously select its -// operating performance state. -// -// {8BAA4A8A-14C6-4451-8E8B-14BDBD197537} -// -DEFINE_GUID(GUID_PROCESSOR_PERF_AUTONOMOUS_MODE, -0x8baa4a8a, 0x14c6, 0x4451, 0x8e, 0x8b, 0x14, 0xbd, 0xbd, 0x19, 0x75, 0x37); - -#define PROCESSOR_PERF_AUTONOMOUS_MODE_DISABLED 0 -#define PROCESSOR_PERF_AUTONOMOUS_MODE_ENABLED 1 - -// -// Specifies the tradeoff between performance and energy the processor should -// make when operating in autonomous mode. -// -// {36687F9E-E3A5-4dbf-B1DC-15EB381C6863} -DEFINE_GUID(GUID_PROCESSOR_PERF_ENERGY_PERFORMANCE_PREFERENCE, -0x36687f9e, 0xe3a5, 0x4dbf, 0xb1, 0xdc, 0x15, 0xeb, 0x38, 0x1c, 0x68, 0x63); - -// -// Specifies the tradeoff between performance and energy the processor should -// make when operating in autonomous mode for class 1 processors. -// -// {36687F9E-E3A5-4dbf-B1DC-15EB381C6864} -DEFINE_GUID(GUID_PROCESSOR_PERF_ENERGY_PERFORMANCE_PREFERENCE_1, -0x36687f9e, 0xe3a5, 0x4dbf, 0xb1, 0xdc, 0x15, 0xeb, 0x38, 0x1c, 0x68, 0x64); - -#define PROCESSOR_PERF_PERFORMANCE_PREFERENCE 0xff -#define PROCESSOR_PERF_ENERGY_PREFERENCE 0 - -// -// Specifies the window over which the processor should observe utilization when -// operating in autonomous mode, in microseconds. -// -// {CFEDA3D0-7697-4566-A922-A9086CD49DFA} -DEFINE_GUID(GUID_PROCESSOR_PERF_AUTONOMOUS_ACTIVITY_WINDOW, -0xcfeda3d0, 0x7697, 0x4566, 0xa9, 0x22, 0xa9, 0x8, 0x6c, 0xd4, 0x9d, 0xfa); - -#define PROCESSOR_PERF_MINIMUM_ACTIVITY_WINDOW 0 -#define PROCESSOR_PERF_MAXIMUM_ACTIVITY_WINDOW 1270000000 - -// -// Specifies whether the processor should perform duty cycling. -// -// {4E4450B3-6179-4e91-B8F1-5BB9938F81A1} -DEFINE_GUID(GUID_PROCESSOR_DUTY_CYCLING, -0x4e4450b3, 0x6179, 0x4e91, 0xb8, 0xf1, 0x5b, 0xb9, 0x93, 0x8f, 0x81, 0xa1); - -#define PROCESSOR_DUTY_CYCLING_DISABLED 0 -#define PROCESSOR_DUTY_CYCLING_ENABLED 1 - -// -// Specifies if idle state promotion and demotion values should be scaled based -// on the current peformance state. -// -// {6C2993B0-8F48-481f-BCC6-00DD2742AA06} -// -DEFINE_GUID( GUID_PROCESSOR_IDLE_ALLOW_SCALING, 0x6c2993b0, 0x8f48, 0x481f, 0xbc, 0xc6, 0x0, 0xdd, 0x27, 0x42, 0xaa, 0x6); - -// -// Specifies if idle states should be disabled. -// -// {5D76A2CA-E8C0-402f-A133-2158492D58AD} -// -DEFINE_GUID( GUID_PROCESSOR_IDLE_DISABLE, 0x5d76a2ca, 0xe8c0, 0x402f, 0xa1, 0x33, 0x21, 0x58, 0x49, 0x2d, 0x58, 0xad); - -// -// Specifies the deepest idle state type that should be used. If this value is -// set to zero, this setting is ignored. Values higher than supported by the -// processor then this setting has no effect. -// -// {9943e905-9a30-4ec1-9b99-44dd3b76f7a2} -// -DEFINE_GUID( GUID_PROCESSOR_IDLE_STATE_MAXIMUM, 0x9943e905, 0x9a30, 0x4ec1, 0x9b, 0x99, 0x44, 0xdd, 0x3b, 0x76, 0xf7, 0xa2); - -// -// Specifies the time that elapsed since the last idle state promotion or -// demotion before idle states may be promoted or demoted again (in -// microseconds). -// -// {C4581C31-89AB-4597-8E2B-9C9CAB440E6B} -// -DEFINE_GUID( GUID_PROCESSOR_IDLE_TIME_CHECK, 0xc4581c31, 0x89ab, 0x4597, 0x8e, 0x2b, 0x9c, 0x9c, 0xab, 0x44, 0xe, 0x6b); - - -// -// Specifies the upper busy threshold that must be met before demoting the -// processor to a lighter idle state (in percentage). -// -// {4B92D758-5A24-4851-A470-815D78AEE119} -// -DEFINE_GUID( GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD, 0x4b92d758, 0x5a24, 0x4851, 0xa4, 0x70, 0x81, 0x5d, 0x78, 0xae, 0xe1, 0x19); - -// -// Specifies the lower busy threshold that must be met before promoting the -// processor to a deeper idle state (in percentage). -// -// {7B224883-B3CC-4d79-819F-8374152CBE7C} -// -DEFINE_GUID( GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD, 0x7b224883, 0xb3cc, 0x4d79, 0x81, 0x9f, 0x83, 0x74, 0x15, 0x2c, 0xbe, 0x7c); - -// -// Specifies the utilization threshold in percent that must be crossed in order to un-park cores. -// -// N.B. This power setting is DEPRECATED. -// -// {df142941-20f3-4edf-9a4a-9c83d3d717d1} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD, 0xdf142941, 0x20f3, 0x4edf, 0x9a, 0x4a, 0x9c, 0x83, 0xd3, 0xd7, 0x17, 0xd1 ); - -// -// Specifies the utilization threshold in percent that must be crossed in order to park cores. -// -// N.B. This power setting is DEPRECATED. -// -// {68dd2f27-a4ce-4e11-8487-3794e4135dfa} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD, 0x68dd2f27, 0xa4ce, 0x4e11, 0x84, 0x87, 0x37, 0x94, 0xe4, 0x13, 0x5d, 0xfa); - -// -// Specifies, either as ideal, single or rocket, how aggressive core parking is when cores must be unparked. -// -// {c7be0679-2817-4d69-9d02-519a537ed0c6} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY, 0xc7be0679, 0x2817, 0x4d69, 0x9d, 0x02, 0x51, 0x9a, 0x53, 0x7e, 0xd0, 0xc6); - -#define CORE_PARKING_POLICY_CHANGE_IDEAL 0 -#define CORE_PARKING_POLICY_CHANGE_SINGLE 1 -#define CORE_PARKING_POLICY_CHANGE_ROCKET 2 -#define CORE_PARKING_POLICY_CHANGE_MULTISTEP 3 -#define CORE_PARKING_POLICY_CHANGE_MAX CORE_PARKING_POLICY_CHANGE_MULTISTEP - -// -// Specifies, either as ideal, single or rocket, how aggressive core parking is when cores must be parked. -// -// {71021b41-c749-4d21-be74-a00f335d582b} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY, 0x71021b41, 0xc749, 0x4d21, 0xbe, 0x74, 0xa0, 0x0f, 0x33, 0x5d, 0x58, 0x2b); - -// -// Specifies, on a per processor group basis, the maximum number of cores that can be kept unparked. -// -// {ea062031-0e34-4ff1-9b6d-eb1059334028} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_MAX_CORES, 0xea062031, 0x0e34, 0x4ff1, 0x9b, 0x6d, 0xeb, 0x10, 0x59, 0x33, 0x40, 0x28); - -// -// Specifies, on a per processor group basis, the maximum number of cores that -// can be kept unparked for Processor Power Efficiency Class 1. -// -// {ea062031-0e34-4ff1-9b6d-eb1059334029} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_MAX_CORES_1, 0xea062031, 0x0e34, 0x4ff1, 0x9b, 0x6d, 0xeb, 0x10, 0x59, 0x33, 0x40, 0x29); - -// -// Specifies, on a per processor group basis, the minimum number of cores that must be kept unparked. -// -// {0cc5b647-c1df-4637-891a-dec35c318583} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_MIN_CORES, 0x0cc5b647, 0xc1df, 0x4637, 0x89, 0x1a, 0xde, 0xc3, 0x5c, 0x31, 0x85, 0x83); - -// -// Specifies, on a per processor group basis, the minimum number of cores that -// must be kept unparked in Processor Power Efficiency Class 1. -// -// {0cc5b647-c1df-4637-891a-dec35c318584} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_MIN_CORES_1, 0x0cc5b647, 0xc1df, 0x4637, 0x89, 0x1a, 0xde, 0xc3, 0x5c, 0x31, 0x85, 0x84); - -// -// Specifies, in milliseconds, the minimum amount of time a core must be parked before it can be unparked. -// -// {2ddd5a84-5a71-437e-912a-db0b8c788732} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME, 0x2ddd5a84, 0x5a71, 0x437e, 0x91, 0x2a, 0xdb, 0x0b, 0x8c, 0x78, 0x87, 0x32); - -// -// Specifies, in milliseconds, the minimum amount of time a core must be unparked before it can be parked. -// -// {dfd10d17-d5eb-45dd-877a-9a34ddd15c82} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME, 0xdfd10d17, 0xd5eb, 0x45dd, 0x87, 0x7a, 0x9a, 0x34, 0xdd, 0xd1, 0x5c, 0x82); - -// -// Specifies the factor by which to decrease affinity history on each core after each check. -// -// {8f7b45e3-c393-480a-878c-f67ac3d07082} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR, 0x8f7b45e3, 0xc393, 0x480a, 0x87, 0x8c, 0xf6, 0x7a, 0xc3, 0xd0, 0x70, 0x82); - -// -// Specifies the threshold above which a core is considered to have had significant affinitized work scheduled to it while parked. -// -// {5b33697b-e89d-4d38-aa46-9e7dfb7cd2f9} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD, 0x5b33697b, 0xe89d, 0x4d38, 0xaa, 0x46, 0x9e, 0x7d, 0xfb, 0x7c, 0xd2, 0xf9); - -// -// Specifies the weighting given to each occurence where affinitized work was scheduled to a parked core. -// -// {e70867f1-fa2f-4f4e-aea1-4d8a0ba23b20} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING, 0xe70867f1, 0xfa2f, 0x4f4e, 0xae, 0xa1, 0x4d, 0x8a, 0x0b, 0xa2, 0x3b, 0x20); - -// -// Specifies the factor by which to decrease the over utilization history on each core after the current performance check. -// -// {1299023c-bc28-4f0a-81ec-d3295a8d815d} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR, 0x1299023c, 0xbc28, 0x4f0a, 0x81, 0xec, 0xd3, 0x29, 0x5a, 0x8d, 0x81, 0x5d); - -// -// Specifies the threshold above which a core is considered to have been recently over utilized while parked. -// -// {9ac18e92-aa3c-4e27-b307-01ae37307129} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD, 0x9ac18e92, 0xaa3c, 0x4e27, 0xb3, 0x07, 0x01, 0xae, 0x37, 0x30, 0x71, 0x29); - -// -// Specifies the weighting given to each occurence where a parked core is found to be over utilized. -// -// {8809c2d8-b155-42d4-bcda-0d345651b1db} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING, 0x8809c2d8, 0xb155, 0x42d4, 0xbc, 0xda, 0x0d, 0x34, 0x56, 0x51, 0xb1, 0xdb); - -// -// Specifies, in percentage, the busy threshold that must be met before a parked core is considered over utilized. -// -// {943c8cb6-6f93-4227-ad87-e9a3feec08d1} -// -DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD, 0x943c8cb6, 0x6f93, 0x4227, 0xad, 0x87, 0xe9, 0xa3, 0xfe, 0xec, 0x08, 0xd1); - -// -// Specifies if at least one processor per core should always remain unparked. -// -// {a55612aa-f624-42c6-a443-7397d064c04f} -// - -DEFINE_GUID( GUID_PROCESSOR_PARKING_CORE_OVERRIDE, 0xa55612aa, 0xf624, 0x42c6, 0xa4, 0x43, 0x73, 0x97, 0xd0, 0x64, 0xc0, 0x4f); - -// -// Specifies what performance state a processor should enter when first parked. -// -// {447235c7-6a8d-4cc0-8e24-9eaf70b96e2b} -// - -DEFINE_GUID( GUID_PROCESSOR_PARKING_PERF_STATE, 0x447235c7, 0x6a8d, 0x4cc0, 0x8e, 0x24, 0x9e, 0xaf, 0x70, 0xb9, 0x6e, 0x2b); - -// -// Specifies what performance state a processor should enter when first parked -// for Processor Power Efficiency Class 1. -// -// {447235c7-6a8d-4cc0-8e24-9eaf70b96e2c} -// -DEFINE_GUID( GUID_PROCESSOR_PARKING_PERF_STATE_1, 0x447235c7, 0x6a8d, 0x4cc0, 0x8e, 0x24, 0x9e, 0xaf, 0x70, 0xb9, 0x6e, 0x2c); - -// -// Specify the busy threshold that must be met when calculating the concurrency of a node's workload. -// -// {2430ab6f-a520-44a2-9601-f7f23b5134b1} -// - -DEFINE_GUID( GUID_PROCESSOR_PARKING_CONCURRENCY_THRESHOLD, 0x2430ab6f, 0xa520, 0x44a2, 0x96, 0x01, 0xf7, 0xf2, 0x3b, 0x51, 0x34, 0xb1); - -// -// Specify the busy threshold that must be met by all cores in a concurrency set to unpark an extra core. -// -// {f735a673-2066-4f80-a0c5-ddee0cf1bf5d} -// - -DEFINE_GUID( GUID_PROCESSOR_PARKING_HEADROOM_THRESHOLD, 0xf735a673, 0x2066, 0x4f80, 0xa0, 0xc5, 0xdd, 0xee, 0x0c, 0xf1, 0xbf, 0x5d); - -// -// Specify the percentage utilization used to calculate the distribution concurrency. -// -// {4bdaf4e9-d103-46d7-a5f0-6280121616ef} -// - -DEFINE_GUID( GUID_PROCESSOR_PARKING_DISTRIBUTION_THRESHOLD, 0x4bdaf4e9, 0xd103, 0x46d7, 0xa5, 0xf0, 0x62, 0x80, 0x12, 0x16, 0x16, 0xef); - -// -// Specifies the number of perf time check intervals to average utility over. -// -// {7d24baa7-0b84-480f-840c-1b0743c00f5f} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_HISTORY, 0x7d24baa7, 0x0b84, 0x480f, 0x84, 0x0c, 0x1b, 0x07, 0x43, 0xc0, 0x0f, 0x5f); - -// -// Specifies the number of perf time check intervals to average utility over in -// Processor Power Efficiency Class 1. -// -// {7d24baa7-0b84-480f-840c-1b0743c00f60} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_HISTORY_1, 0x7d24baa7, 0x0b84, 0x480f, 0x84, 0x0c, 0x1b, 0x07, 0x43, 0xc0, 0x0f, 0x60); - -// -// Specifies the number of perf time check intervals to average utility over to -// determine performance increase. -// -// N.B. This power setting is DEPRECATED. -// -// {99B3EF01-752F-46a1-80FB-7730011F2354} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_HISTORY, 0x99b3ef01, 0x752f, 0x46a1, 0x80, 0xfb, 0x77, 0x30, 0x1, 0x1f, 0x23, 0x54); - -// -// Specifies the number of perf time check intervals to average utility over to -// determine performance decrease. -// -// N.B. This power setting is DEPRECATED. -// -// {0300F6F8-ABD6-45a9-B74F-4908691A40B5} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_HISTORY, 0x300f6f8, 0xabd6, 0x45a9, 0xb7, 0x4f, 0x49, 0x8, 0x69, 0x1a, 0x40, 0xb5); - -// -// Specifies the number of perf time check intervals to average utility over for -// core parking. -// -// N.B. This power setting is DEPRECATED. -// -// {77D7F282-8F1A-42cd-8537-45450A839BE8} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY, 0x77d7f282, 0x8f1a, 0x42cd, 0x85, 0x37, 0x45, 0x45, 0xa, 0x83, 0x9b, 0xe8); - -// -// Specifies whether latency sensitivity hints should be taken into account by -// the perf state engine. -// -// N.B. This power setting is DEPRECATED. -// -// {0822df31-9c83-441c-a079-0de4cf009c7b} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_LATENCY_HINT, 0x0822df31, 0x9c83, 0x441c, 0xa0, 0x79, 0x0d, 0xe4, 0xcf, 0x00, 0x9c, 0x7b); - -// -// Specifies the processor performance state in response to latency sensitivity hints. -// -// {619b7505-003b-4e82-b7a6-4dd29c300971} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_LATENCY_HINT_PERF, 0x619b7505, 0x3b, 0x4e82, 0xb7, 0xa6, 0x4d, 0xd2, 0x9c, 0x30, 0x9, 0x71); - -// -// Specifies the processor performance state in response to latency sensitivity -// hints for Processor Power Efficiency Class 1. -// -// {619b7505-003b-4e82-b7a6-4dd29c300972} -// -DEFINE_GUID( GUID_PROCESSOR_PERF_LATENCY_HINT_PERF_1, 0x619b7505, 0x3b, 0x4e82, 0xb7, 0xa6, 0x4d, 0xd2, 0x9c, 0x30, 0x9, 0x72); - -// -// Specifies the minimum unparked processors when a latency hint is active -// (in a percentage). -// -// {616cdaa5-695e-4545-97ad-97dc2d1bdd88} -// -DEFINE_GUID( GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK, 0x616cdaa5, 0x695e, 0x4545, 0x97, 0xad, 0x97, 0xdc, 0x2d, 0x1b, 0xdd, 0x88); - -// -// Specifies the minimum unparked processors when a latency hint is active -// for Processor Power Efficiency Class 1 (in a percentage). -// -// {616cdaa5-695e-4545-97ad-97dc2d1bdd89} -// -DEFINE_GUID( GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK_1, 0x616cdaa5, 0x695e, 0x4545, 0x97, 0xad, 0x97, 0xdc, 0x2d, 0x1b, 0xdd, 0x89); - -// -// Specifies whether the core parking engine should distribute processor -// utility. -// -// {e0007330-f589-42ed-a401-5ddb10e785d3} -// -DEFINE_GUID( GUID_PROCESSOR_DISTRIBUTE_UTILITY, 0xe0007330, 0xf589, 0x42ed, 0xa4, 0x01, 0x5d, 0xdb, 0x10, 0xe7, 0x85, 0xd3); - -// -// GUIDS to control PPM settings on computer system with more than one -// Processor Power Efficiency Classes (heterogeneous system). -// ----------------- -// -// Specifies the current active heterogeneous policy. -// -// {7f2f5cfa-f10c-4823-b5e1-e93ae85f46b5} -// -DEFINE_GUID( GUID_PROCESSOR_HETEROGENEOUS_POLICY, 0x7f2f5cfa, 0xf10c, 0x4823, 0xb5, 0xe1, 0xe9, 0x3a, 0xe8, 0x5f, 0x46, 0xb5); - -// -// Specifies the number of perf check cycles required to decrease the number of -// Processor Power Efficiency Class 1 processors. -// -// {7f2492b6-60b1-45e5-ae55-773f8cd5caec} -// -DEFINE_GUID( GUID_PROCESSOR_HETERO_DECREASE_TIME, 0x7f2492b6, 0x60b1, 0x45e5, 0xae, 0x55, 0x77, 0x3f, 0x8c, 0xd5, 0xca, 0xec); - -// -// Specifies the number of perf check cycles required to increase the number of -// Processor Power Efficiency Class 1 processors. -// -// {4009efa7-e72d-4cba-9edf-91084ea8cbc3} -// -DEFINE_GUID( GUID_PROCESSOR_HETERO_INCREASE_TIME, 0x4009efa7, 0xe72d, 0x4cba, 0x9e, 0xdf, 0x91, 0x08, 0x4e, 0xa8, 0xcb, 0xc3); - -// -// Specifies the performance level (in units of Processor Power Efficiency -// Class 0 processor performance) at which the number of Processor Power -// Efficiency Class 1 processors is decreased. -// -// {f8861c27-95e7-475c-865b-13c0cb3f9d6b} -// -DEFINE_GUID( GUID_PROCESSOR_HETERO_DECREASE_THRESHOLD, 0xf8861c27, 0x95e7, 0x475c, 0x86, 0x5b, 0x13, 0xc0, 0xcb, 0x3f, 0x9d, 0x6b); - -// -// Specifies the performance level (in units of Processor Power Efficiency -// Class 0 processor performance) at which the number of Processor Power -// Efficiency Class 1 processors is increased. -// -// {b000397d-9b0b-483d-98c9-692a6060cfbf} -// -DEFINE_GUID( GUID_PROCESSOR_HETERO_INCREASE_THRESHOLD, 0xb000397d, 0x9b0b, 0x483d, 0x98, 0xc9, 0x69, 0x2a, 0x60, 0x60, 0xcf, 0xbf); - -// -// Specifies the performance target floor of a Processor Power Efficiency -// Class 0 processor when the system unparks Processor Power Efficiency Class 1 -// processor(s). -// -// {fddc842b-8364-4edc-94cf-c17f60de1c80} -// -DEFINE_GUID( GUID_PROCESSOR_CLASS0_FLOOR_PERF, 0xfddc842b, 0x8364, 0x4edc, 0x94, 0xcf, 0xc1, 0x7f, 0x60, 0xde, 0x1c, 0x80); - -// -// Specifies the initial performance target of a Processor Power Efficiency -// Class 1 processor when the system makes a transition up from zero Processor -// Power Efficiency Class 1 processors. -// -// {1facfc65-a930-4bc5-9f38-504ec097bbc0} -// -DEFINE_GUID( GUID_PROCESSOR_CLASS1_INITIAL_PERF, 0x1facfc65, 0xa930, 0x4bc5, 0x9f, 0x38, 0x50, 0x4e, 0xc0, 0x97, 0xbb, 0xc0); - -// -// Specifies the scheduling policy for threads in a given QoS class. -// -// {93B8B6DC-0698-4d1c-9EE4-0644E900C85D} -// -DEFINE_GUID( GUID_PROCESSOR_THREAD_SCHEDULING_POLICY, -0x93b8b6dc, 0x698, 0x4d1c, 0x9e, 0xe4, 0x6, 0x44, 0xe9, 0x0, 0xc8, 0x5d); - -// -// Specifies the scheduling policy for short running threads in a given QoS -// class. -// -// {BAE08B81-2D5E-4688-AD6A-13243356654B} -// -DEFINE_GUID( GUID_PROCESSOR_SHORT_THREAD_SCHEDULING_POLICY, -0xbae08b81, 0x2d5e, 0x4688, 0xad, 0x6a, 0x13, 0x24, 0x33, 0x56, 0x65, 0x4b); - -// -// Specifies active vs passive cooling. Although not directly related to -// processor settings, it is the processor that gets throttled if we're doing -// passive cooling, so it is fairly strongly related. -// {94D3A615-A899-4AC5-AE2B-E4D8F634367F} -// -DEFINE_GUID( GUID_SYSTEM_COOLING_POLICY, 0x94D3A615, 0xA899, 0x4AC5, 0xAE, 0x2B, 0xE4, 0xD8, 0xF6, 0x34, 0x36, 0x7F); - -// -// Processor responsiveness settings -// -// Specifies the number of responsiveness events required to disable -// responsiveness policy overrides. -// -// {38B8383D-CCE0-4c79-9E3E-56A4F17CC480} -// -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_DISABLE_THRESHOLD, -0x38b8383d, 0xcce0, 0x4c79, 0x9e, 0x3e, 0x56, 0xa4, 0xf1, 0x7c, 0xc4, 0x80); - -// -// Specifies the number of responsiveness events required to disable -// responsiveness policy overrides for efficiency class 1 processors. -// -// {38B8383D-CCE0-4c79-9E3E-56A4F17CC481} -// -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_DISABLE_THRESHOLD_1, -0x38b8383d, 0xcce0, 0x4c79, 0x9e, 0x3e, 0x56, 0xa4, 0xf1, 0x7c, 0xc4, 0x81); - -// -// Specifies the number of responsiveness events required to enable -// responsiveness policy overrides. -// -// {3D44E256-7222-4415-A9ED-9C45FA3DD830} -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_ENABLE_THRESHOLD, -0x3d44e256, 0x7222, 0x4415, 0xa9, 0xed, 0x9c, 0x45, 0xfa, 0x3d, 0xd8, 0x30); - -// -// Specifies the number of responsiveness events required to enable -// responsiveness policy overrides for efficiency class 1 processors. -// -// {3D44E256-7222-4415-A9ED-9C45FA3DD831} -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_ENABLE_THRESHOLD_1, -0x3d44e256, 0x7222, 0x4415, 0xa9, 0xed, 0x9c, 0x45, 0xfa, 0x3d, 0xd8, 0x31); - -// -// Specifies the number of consecutive perf checks with a disable hint before -// responsivenss overrides will be disabled. -// -// {F565999F-3FB0-411a-A226-3F0198DEC130} -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_DISABLE_TIME, -0xf565999f, 0x3fb0, 0x411a, 0xa2, 0x26, 0x3f, 0x1, 0x98, 0xde, 0xc1, 0x30); - -// -// Specifies the number of consecutive perf checks with a disable hint before -// responsivenss overrides will be disabled for efficiency class 1 processors. -// -// {F565999F-3FB0-411a-A226-3F0198DEC131} -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_DISABLE_TIME_1, -0xf565999f, 0x3fb0, 0x411a, 0xa2, 0x26, 0x3f, 0x1, 0x98, 0xde, 0xc1, 0x31); - -// -// Specifies the number of consecutive perf checks with a enable hint before -// responsivenss overrides will be enabled. -// -// {3D915188-7830-49ae-A79A-0FB0A1E5A200} -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_ENABLE_TIME, -0x3d915188, 0x7830, 0x49ae, 0xa7, 0x9a, 0xf, 0xb0, 0xa1, 0xe5, 0xa2, 0x0); - -// -// Specifies the number of consecutive perf checks with a enable hint before -// responsivenss overrides will be enabled for efficiency class 1 processors. -// -// {3D915188-7830-49ae-A79A-0FB0A1E5A201} -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_ENABLE_TIME_1, -0x3d915188, 0x7830, 0x49ae, 0xa7, 0x9a, 0xf, 0xb0, 0xa1, 0xe5, 0xa2, 0x1); - -// -// Specifies the ceiling placed on EPP when responsiveness hints are enabled. -// -// {4427C73B-9756-4a5c-B84B-C7BDA79C7320} -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_EPP_CEILING, -0x4427c73b, 0x9756, 0x4a5c, 0xb8, 0x4b, 0xc7, 0xbd, 0xa7, 0x9c, 0x73, 0x20); - -// -// Specifies the ceiling placed on EPP when responsiveness hints are enabled -// for efficiency class 1 processors. -// -// {4427C73B-9756-4a5c-B84B-C7BDA79C7321} -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_EPP_CEILING_1, -0x4427c73b, 0x9756, 0x4a5c, 0xb8, 0x4b, 0xc7, 0xbd, 0xa7, 0x9c, 0x73, 0x21); - -// -// Specifies the floor placed on processor performance when responsiveness hints -// are enabled. -// -// {CE8E92EE-6A86-4572-BFE0-20C21D03CD40} -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_PERF_FLOOR, -0xce8e92ee, 0x6a86, 0x4572, 0xbf, 0xe0, 0x20, 0xc2, 0x1d, 0x3, 0xcd, 0x40); - -// -// Specifies the floor placed on processor performance when responsiveness hints -// are enabled for efficiency class 1 processors. -// -// {CE8E92EE-6A86-4572-BFE0-20C21D03CD41} -DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_PERF_FLOOR_1, -0xce8e92ee, 0x6a86, 0x4572, 0xbf, 0xe0, 0x20, 0xc2, 0x1d, 0x3, 0xcd, 0x41); - -// Lock Console on Wake -// -------------------- -// - -// Specifies the behavior of the system when we wake from standby or -// hibernate. If this is set, then we will cause the console to lock -// after we resume. -// -DEFINE_GUID( GUID_LOCK_CONSOLE_ON_WAKE, 0x0E796BDB, 0x100D, 0x47D6, 0xA2, 0xD5, 0xF7, 0xD2, 0xDA, 0xA5, 0x1F, 0x51 ); - -// Device idle characteristics -// --------------------------- -// -// Specifies whether to use the "performance" or "conservative" timeouts for -// device idle management. -// -// 4faab71a-92e5-4726-b531-224559672d19 -// -DEFINE_GUID( GUID_DEVICE_IDLE_POLICY, 0x4faab71a, 0x92e5, 0x4726, 0xb5, 0x31, 0x22, 0x45, 0x59, 0x67, 0x2d, 0x19 ); - -#define POWER_DEVICE_IDLE_POLICY_PERFORMANCE 0 -#define POWER_DEVICE_IDLE_POLICY_CONSERVATIVE 1 - -// -// Specifies standby connectivity preference. -// -// F15576E8-98B7-4186-B944-EAFA664402D9 -DEFINE_GUID( GUID_CONNECTIVITY_IN_STANDBY, 0xF15576E8, 0x98B7, 0x4186, 0xB9, 0x44, 0xEA, 0xFA, 0x66, 0x44, 0x02, 0xD9 ); - -#define POWER_CONNECTIVITY_IN_STANDBY_DISABLED 0 -#define POWER_CONNECTIVITY_IN_STANDBY_ENABLED 1 -#define POWER_CONNECTIVITY_IN_STANDBY_SYSTEM_MANAGED 2 - -// -// Specifies the mode for disconnected standby. -// -// 68AFB2D9-EE95-47A8-8F50-4115088073B1 -DEFINE_GUID( GUID_DISCONNECTED_STANDBY_MODE, 0x68AFB2D9, 0xEE95, 0x47A8, 0x8F, 0x50, 0x41, 0x15, 0x08, 0x80, 0x73, 0xB1 ); - -#define POWER_DISCONNECTED_STANDBY_MODE_NORMAL 0 -#define POWER_DISCONNECTED_STANDBY_MODE_AGGRESSIVE 1 - -// AC/DC power source -// ------------------ -// - -// Specifies the power source for the system. consumers may register for -// notification when the power source changes and will be notified with -// one of 3 values: -// 0 - Indicates the system is being powered by an AC power source. -// 1 - Indicates the system is being powered by a DC power source. -// 2 - Indicates the system is being powered by a short-term DC power -// source. For example, this would be the case if the system is -// being powed by a short-term battery supply in a backing UPS -// system. When this value is recieved, the consumer should make -// preparations for either a system hibernate or system shutdown. -// -// { 5D3E9A59-E9D5-4B00-A6BD-FF34FF516548 } -DEFINE_GUID( GUID_ACDC_POWER_SOURCE, 0x5D3E9A59, 0xE9D5, 0x4B00, 0xA6, 0xBD, 0xFF, 0x34, 0xFF, 0x51, 0x65, 0x48 ); - -// Lid state changes -// ----------------- -// -// Specifies the current state of the lid (open or closed). The callback won't -// be called at all until a lid device is found and its current state is known. -// -// Values: -// -// 0 - closed -// 1 - opened -// -// { BA3E0F4D-B817-4094-A2D1-D56379E6A0F3 } -// - -DEFINE_GUID( GUID_LIDSWITCH_STATE_CHANGE, 0xBA3E0F4D, 0xB817, 0x4094, 0xA2, 0xD1, 0xD5, 0x63, 0x79, 0xE6, 0xA0, 0xF3 ); - -// Battery status changes -// ---------------------- -// - -// Specifies the percentage of battery life remaining. The consumer -// may register for notification in order to track battery life in -// a fine-grained manner. -// -// Once registered, the consumer can expect to be notified as the battery -// life percentage changes. -// -// The consumer will recieve a value between 0 and 100 (inclusive) which -// indicates percent battery life remaining. -// -// { A7AD8041-B45A-4CAE-87A3-EECBB468A9E1 } -DEFINE_GUID( GUID_BATTERY_PERCENTAGE_REMAINING, 0xA7AD8041, 0xB45A, 0x4CAE, 0x87, 0xA3, 0xEE, 0xCB, 0xB4, 0x68, 0xA9, 0xE1 ); - -// Specifies change in number of batteries present on the system. The consumer -// may register for notification in order to track change in number of batteries -// available on a system. -// -// Once registered, the consumer can expect to be notified whenever the -// batteries are added or removed from the system. -// -// The consumer will recieve a value indicating number of batteries currently -// present on the system. -// -// {7D263F15-FCA4-49E5-854B-A9F2BFBD5C24} -DEFINE_GUID( GUID_BATTERY_COUNT, 0x7d263f15, 0xfca4, 0x49e5, 0x85, 0x4b, 0xa9, 0xf2, 0xbf, 0xbd, 0x5c, 0x24 ); - -// -// Global notification indicating to listeners user activity/presence accross -// all sessions in the system (Present, NotPresent, Inactive) -// -// {786E8A1D-B427-4344-9207-09E70BDCBEA9} -DEFINE_GUID( GUID_GLOBAL_USER_PRESENCE, 0x786e8a1d, 0xb427, 0x4344, 0x92, 0x7, 0x9, 0xe7, 0xb, 0xdc, 0xbe, 0xa9 ); - -// -// Session specific notification indicating to listeners whether or not the display -// related to the given session is on/off/dim -// -// N.B. This is a session-specific notification, sent only to interactive -// session registrants. Session 0 and kernel mode consumers do not receive -// this notification. -// -// {2B84C20E-AD23-4ddf-93DB-05FFBD7EFCA5} -DEFINE_GUID( GUID_SESSION_DISPLAY_STATUS, 0x2b84c20e, 0xad23, 0x4ddf, 0x93, 0xdb, 0x5, 0xff, 0xbd, 0x7e, 0xfc, 0xa5 ); - -// -// Session specific notification indicating to listeners user activity/presence -//(Present, NotPresent, Inactive) -// -// N.B. This is a session-specific notification, sent only to interactive -// session registrants. Session 0 and kernel mode consumers do not receive -// this notification. -// {3C0F4548-C03F-4c4d-B9F2-237EDE686376} -DEFINE_GUID( GUID_SESSION_USER_PRESENCE, 0x3c0f4548, 0xc03f, 0x4c4d, 0xb9, 0xf2, 0x23, 0x7e, 0xde, 0x68, 0x63, 0x76 ); - - -// Notification to listeners that the system is fairly busy and won't be moving -// into an idle state any time soon. This can be used as a hint to listeners -// that now might be a good time to do background tasks. -// -DEFINE_GUID( GUID_IDLE_BACKGROUND_TASK, 0x515C31D8, 0xF734, 0x163D, 0xA0, 0xFD, 0x11, 0xA0, 0x8C, 0x91, 0xE8, 0xF1 ); - -// Notification to listeners that the system is fairly busy and won't be moving -// into an idle state any time soon. This can be used as a hint to listeners -// that now might be a good time to do background tasks. -// -// { CF23F240-2A54-48D8-B114-DE1518FF052E } -DEFINE_GUID( GUID_BACKGROUND_TASK_NOTIFICATION, 0xCF23F240, 0x2A54, 0x48D8, 0xB1, 0x14, 0xDE, 0x15, 0x18, 0xFF, 0x05, 0x2E ); - -// Define a GUID that will represent the action of a direct experience button -// on the platform. Users will register for this DPPE setting and recieve -// notification when the h/w button is pressed. -// -// { 1A689231-7399-4E9A-8F99-B71F999DB3FA } -// -DEFINE_GUID( GUID_APPLAUNCH_BUTTON, 0x1A689231, 0x7399, 0x4E9A, 0x8F, 0x99, 0xB7, 0x1F, 0x99, 0x9D, 0xB3, 0xFA ); - -// PCI Express power settings -// ------------------------ -// - -// Specifies the subgroup which will contain all of the PCI Express -// settings for a single policy. -// -// {501a4d13-42af-4429-9fd1-a8218c268e20} -// -DEFINE_GUID( GUID_PCIEXPRESS_SETTINGS_SUBGROUP, 0x501a4d13, 0x42af,0x4429, 0x9f, 0xd1, 0xa8, 0x21, 0x8c, 0x26, 0x8e, 0x20 ); - -// Specifies the PCI Express ASPM power policy. -// -// {ee12f906-d277-404b-b6da-e5fa1a576df5} -// -DEFINE_GUID( GUID_PCIEXPRESS_ASPM_POLICY, 0xee12f906, 0xd277, 0x404b, 0xb6, 0xda, 0xe5, 0xfa, 0x1a, 0x57, 0x6d, 0xf5 ); - -// POWER Shutdown settings -// ------------------------ -// - -// Specifies if forced shutdown should be used for all button and lid initiated -// shutdown actions. -// -// {833a6b62-dfa4-46d1-82f8-e09e34d029d6} -// - -DEFINE_GUID( GUID_ENABLE_SWITCH_FORCED_SHUTDOWN, 0x833a6b62, 0xdfa4, 0x46d1, 0x82, 0xf8, 0xe0, 0x9e, 0x34, 0xd0, 0x29, 0xd6 ); - -// Interrupt Steering power settings -// ------------------------ -// - -// {48672F38-7A9A-4bb2-8BF8-3D85BE19DE4E} -DEFINE_GUID(GUID_INTSTEER_SUBGROUP, -0x48672f38, 0x7a9a, 0x4bb2, 0x8b, 0xf8, 0x3d, 0x85, 0xbe, 0x19, 0xde, 0x4e); - -// {2BFC24F9-5EA2-4801-8213-3DBAE01AA39D} -DEFINE_GUID(GUID_INTSTEER_MODE, -0x2bfc24f9, 0x5ea2, 0x4801, 0x82, 0x13, 0x3d, 0xba, 0xe0, 0x1a, 0xa3, 0x9d); - -// {73CDE64D-D720-4bb2-A860-C755AFE77EF2} -DEFINE_GUID(GUID_INTSTEER_LOAD_PER_PROC_TRIGGER, -0x73cde64d, 0xd720, 0x4bb2, 0xa8, 0x60, 0xc7, 0x55, 0xaf, 0xe7, 0x7e, 0xf2); - -// {D6BA4903-386F-4c2c-8ADB-5C21B3328D25} -DEFINE_GUID(GUID_INTSTEER_TIME_UNPARK_TRIGGER, -0xd6ba4903, 0x386f, 0x4c2c, 0x8a, 0xdb, 0x5c, 0x21, 0xb3, 0x32, 0x8d, 0x25); - -// Graphics power settings -// ------------------------ -// - -// Specified the subgroup which contains all inbox graphics settings. -// -// {5FB4938D-1EE8-4b0f-9A3C-5036B0AB995C} -// -DEFINE_GUID(GUID_GRAPHICS_SUBGROUP, 0x5fb4938d, 0x1ee8, 0x4b0f, 0x9a, 0x3c, 0x50, 0x36, 0xb0, 0xab, 0x99, 0x5c); - -// Specifies the GPU preference policy. -// -// {DD848B2A-8A5D-4451-9AE2-39CD41658F6C} -// -DEFINE_GUID(GUID_GPU_PREFERENCE_POLICY, 0xdd848b2a, 0x8a5d, 0x4451, 0x9a, 0xe2, 0x39, 0xcd, 0x41, 0x65, 0x8f, 0x6c); - -// Other miscellaneous power notification GUIDs -// ------------------------ -// - -// Specifies whether mixed reality mode is engaged. -// -// {1E626B4E-CF04-4f8d-9CC7-C97C5B0F2391} -// - -DEFINE_GUID(GUID_MIXED_REALITY_MODE, -0x1e626b4e, 0xcf04, 0x4f8d, 0x9c, 0xc7, 0xc9, 0x7c, 0x5b, 0xf, 0x23, 0x91); - -// Specifies a change (start/end) in System Power Report's Active Session. -// -// {0E24CE38-C393-4742-BDB1-744F4B9EE08E} -// - -DEFINE_GUID(GUID_SPR_ACTIVE_SESSION_CHANGE, -0xe24ce38, 0xc393, 0x4742, 0xbd, 0xb1, 0x74, 0x4f, 0x4b, 0x9e, 0xe0, 0x8e); - - -typedef enum _SYSTEM_POWER_STATE { - PowerSystemUnspecified = 0, - PowerSystemWorking = 1, - PowerSystemSleeping1 = 2, - PowerSystemSleeping2 = 3, - PowerSystemSleeping3 = 4, - PowerSystemHibernate = 5, - PowerSystemShutdown = 6, - PowerSystemMaximum = 7 -} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE; - -#define POWER_SYSTEM_MAXIMUM 7 - -typedef enum { - PowerActionNone = 0, - PowerActionReserved, - PowerActionSleep, - PowerActionHibernate, - PowerActionShutdown, - PowerActionShutdownReset, - PowerActionShutdownOff, - PowerActionWarmEject, - PowerActionDisplayOff -} POWER_ACTION, *PPOWER_ACTION; - -typedef enum _DEVICE_POWER_STATE { - PowerDeviceUnspecified = 0, - PowerDeviceD0, - PowerDeviceD1, - PowerDeviceD2, - PowerDeviceD3, - PowerDeviceMaximum -} DEVICE_POWER_STATE, *PDEVICE_POWER_STATE; - -typedef enum _MONITOR_DISPLAY_STATE { - PowerMonitorOff = 0, - PowerMonitorOn, - PowerMonitorDim -} MONITOR_DISPLAY_STATE, *PMONITOR_DISPLAY_STATE; - -typedef enum _USER_ACTIVITY_PRESENCE { - PowerUserPresent = 0, - PowerUserNotPresent, - PowerUserInactive, - PowerUserMaximum, - PowerUserInvalid = PowerUserMaximum -} USER_ACTIVITY_PRESENCE, *PUSER_ACTIVITY_PRESENCE; - - - -#define ES_SYSTEM_REQUIRED ((DWORD)0x00000001) -#define ES_DISPLAY_REQUIRED ((DWORD)0x00000002) -#define ES_USER_PRESENT ((DWORD)0x00000004) -#define ES_AWAYMODE_REQUIRED ((DWORD)0x00000040) -#define ES_CONTINUOUS ((DWORD)0x80000000) - -typedef DWORD EXECUTION_STATE, *PEXECUTION_STATE; - -typedef enum { - LT_DONT_CARE, - LT_LOWEST_LATENCY -} LATENCY_TIME; - -#define DIAGNOSTIC_REASON_VERSION 0 - -#define DIAGNOSTIC_REASON_SIMPLE_STRING 0x00000001 -#define DIAGNOSTIC_REASON_DETAILED_STRING 0x00000002 -#define DIAGNOSTIC_REASON_NOT_SPECIFIED 0x80000000 -#define DIAGNOSTIC_REASON_INVALID_FLAGS (~0x80000007) - - -// -// Defines for power request APIs -// - -#define POWER_REQUEST_CONTEXT_VERSION DIAGNOSTIC_REASON_VERSION - -#define POWER_REQUEST_CONTEXT_SIMPLE_STRING DIAGNOSTIC_REASON_SIMPLE_STRING -#define POWER_REQUEST_CONTEXT_DETAILED_STRING DIAGNOSTIC_REASON_DETAILED_STRING - -typedef enum _POWER_REQUEST_TYPE { - PowerRequestDisplayRequired, - PowerRequestSystemRequired, - PowerRequestAwayModeRequired, - PowerRequestExecutionRequired -} POWER_REQUEST_TYPE, *PPOWER_REQUEST_TYPE; - -// end_ntminiport - -#if (NTDDI_VERSION >= NTDDI_WINXP) - -//----------------------------------------------------------------------------- -// Device Power Information -// Accessable via CM_Get_DevInst_Registry_Property_Ex(CM_DRP_DEVICE_POWER_DATA) -//----------------------------------------------------------------------------- - -#define PDCAP_D0_SUPPORTED 0x00000001 -#define PDCAP_D1_SUPPORTED 0x00000002 -#define PDCAP_D2_SUPPORTED 0x00000004 -#define PDCAP_D3_SUPPORTED 0x00000008 -#define PDCAP_WAKE_FROM_D0_SUPPORTED 0x00000010 -#define PDCAP_WAKE_FROM_D1_SUPPORTED 0x00000020 -#define PDCAP_WAKE_FROM_D2_SUPPORTED 0x00000040 -#define PDCAP_WAKE_FROM_D3_SUPPORTED 0x00000080 -#define PDCAP_WARM_EJECT_SUPPORTED 0x00000100 - -typedef struct CM_Power_Data_s { - DWORD PD_Size; - DEVICE_POWER_STATE PD_MostRecentPowerState; - DWORD PD_Capabilities; - DWORD PD_D1Latency; - DWORD PD_D2Latency; - DWORD PD_D3Latency; - DEVICE_POWER_STATE PD_PowerStateMapping[POWER_SYSTEM_MAXIMUM]; - SYSTEM_POWER_STATE PD_DeepestSystemWake; -} CM_POWER_DATA, *PCM_POWER_DATA; - -#endif // (NTDDI_VERSION >= NTDDI_WINXP) - -// begin_wdm - -typedef enum { - SystemPowerPolicyAc, - SystemPowerPolicyDc, - VerifySystemPolicyAc, - VerifySystemPolicyDc, - SystemPowerCapabilities, - SystemBatteryState, - SystemPowerStateHandler, - ProcessorStateHandler, - SystemPowerPolicyCurrent, - AdministratorPowerPolicy, - SystemReserveHiberFile, - ProcessorInformation, - SystemPowerInformation, - ProcessorStateHandler2, - LastWakeTime, // Compare with KeQueryInterruptTime() - LastSleepTime, // Compare with KeQueryInterruptTime() - SystemExecutionState, - SystemPowerStateNotifyHandler, - ProcessorPowerPolicyAc, - ProcessorPowerPolicyDc, - VerifyProcessorPowerPolicyAc, - VerifyProcessorPowerPolicyDc, - ProcessorPowerPolicyCurrent, - SystemPowerStateLogging, - SystemPowerLoggingEntry, - SetPowerSettingValue, - NotifyUserPowerSetting, - PowerInformationLevelUnused0, - SystemMonitorHiberBootPowerOff, - SystemVideoState, - TraceApplicationPowerMessage, - TraceApplicationPowerMessageEnd, - ProcessorPerfStates, - ProcessorIdleStates, - ProcessorCap, - SystemWakeSource, - SystemHiberFileInformation, - TraceServicePowerMessage, - ProcessorLoad, - PowerShutdownNotification, - MonitorCapabilities, - SessionPowerInit, - SessionDisplayState, - PowerRequestCreate, - PowerRequestAction, - GetPowerRequestList, - ProcessorInformationEx, - NotifyUserModeLegacyPowerEvent, - GroupPark, - ProcessorIdleDomains, - WakeTimerList, - SystemHiberFileSize, - ProcessorIdleStatesHv, - ProcessorPerfStatesHv, - ProcessorPerfCapHv, - ProcessorSetIdle, - LogicalProcessorIdling, - UserPresence, - PowerSettingNotificationName, - GetPowerSettingValue, - IdleResiliency, - SessionRITState, - SessionConnectNotification, - SessionPowerCleanup, - SessionLockState, - SystemHiberbootState, - PlatformInformation, - PdcInvocation, - MonitorInvocation, - FirmwareTableInformationRegistered, - SetShutdownSelectedTime, - SuspendResumeInvocation, - PlmPowerRequestCreate, - ScreenOff, - CsDeviceNotification, - PlatformRole, - LastResumePerformance, - DisplayBurst, - ExitLatencySamplingPercentage, - RegisterSpmPowerSettings, - PlatformIdleStates, - ProcessorIdleVeto, // Deprecated. - PlatformIdleVeto, // Deprecated. - SystemBatteryStatePrecise, - ThermalEvent, - PowerRequestActionInternal, - BatteryDeviceState, - PowerInformationInternal, - ThermalStandby, - SystemHiberFileType, - PhysicalPowerButtonPress, - QueryPotentialDripsConstraint, - EnergyTrackerCreate, - EnergyTrackerQuery, - UpdateBlackBoxRecorder, - PowerInformationLevelMaximum -} POWER_INFORMATION_LEVEL; - -// -// User Presence Values -// - -typedef enum { - UserNotPresent = 0, - UserPresent = 1, - UserUnknown = 0xff -} POWER_USER_PRESENCE_TYPE, *PPOWER_USER_PRESENCE_TYPE; - -typedef struct _POWER_USER_PRESENCE { - POWER_USER_PRESENCE_TYPE UserPresence; -} POWER_USER_PRESENCE, *PPOWER_USER_PRESENCE; - -// -// Session Connect/Disconnect -// -typedef struct _POWER_SESSION_CONNECT { - BOOLEAN Connected; // TRUE - connected, FALSE - disconnected - BOOLEAN Console; // TRUE - console, FALSE - TS (not used for Connected = FALSE) -} POWER_SESSION_CONNECT, *PPOWER_SESSION_CONNECT; - -typedef struct _POWER_SESSION_TIMEOUTS { - DWORD InputTimeout; - DWORD DisplayTimeout; -} POWER_SESSION_TIMEOUTS, *PPOWER_SESSION_TIMEOUTS; - -// -// Session RIT State -// -typedef struct _POWER_SESSION_RIT_STATE { - BOOLEAN Active; // TRUE - RIT input received, FALSE - RIT timeout - DWORD LastInputTime; // last input time held for this session -} POWER_SESSION_RIT_STATE, *PPOWER_SESSION_RIT_STATE; - -// -// Winlogon notifications -// -typedef struct _POWER_SESSION_WINLOGON { - DWORD SessionId; // the Win32k session identifier - BOOLEAN Console; // TRUE - for console session, FALSE - for remote session - BOOLEAN Locked; // TRUE - lock, FALSE - unlock -} POWER_SESSION_WINLOGON, *PPOWER_SESSION_WINLOGON; - -// -// Idle resiliency -// -typedef struct _POWER_IDLE_RESILIENCY { - DWORD CoalescingTimeout; - DWORD IdleResiliencyPeriod; -} POWER_IDLE_RESILIENCY, *PPOWER_IDLE_RESILIENCY; - -// -// Monitor on/off reasons -// -// N.B. Update power-event mapping when adding new events. -// -typedef enum { - MonitorRequestReasonUnknown, - MonitorRequestReasonPowerButton, - MonitorRequestReasonRemoteConnection, - MonitorRequestReasonScMonitorpower, - MonitorRequestReasonUserInput, - MonitorRequestReasonAcDcDisplayBurst, - MonitorRequestReasonUserDisplayBurst, - MonitorRequestReasonPoSetSystemState, - MonitorRequestReasonSetThreadExecutionState, - MonitorRequestReasonFullWake, - MonitorRequestReasonSessionUnlock, - MonitorRequestReasonScreenOffRequest, - MonitorRequestReasonIdleTimeout, - MonitorRequestReasonPolicyChange, - MonitorRequestReasonSleepButton, - MonitorRequestReasonLid, - MonitorRequestReasonBatteryCountChange, - MonitorRequestReasonGracePeriod, - MonitorRequestReasonPnP, - MonitorRequestReasonDP, - MonitorRequestReasonSxTransition, - MonitorRequestReasonSystemIdle, - MonitorRequestReasonNearProximity, - MonitorRequestReasonThermalStandby, - MonitorRequestReasonResumePdc, - MonitorRequestReasonResumeS4, - MonitorRequestReasonTerminal, - MonitorRequestReasonPdcSignal, - MonitorRequestReasonAcDcDisplayBurstSuppressed, - MonitorRequestReasonSystemStateEntered, // When CS exit happens because system - // transition to S4/S5, please note this - // reason is different than ReasonSxTransition. - MonitorRequestReasonWinrt, - MonitorRequestReasonUserInputKeyboard, - MonitorRequestReasonUserInputMouse, - MonitorRequestReasonUserInputTouch, - MonitorRequestReasonUserInputPen, - MonitorRequestReasonUserInputAccelerometer, - MonitorRequestReasonUserInputHid, - MonitorRequestReasonUserInputPoUserPresent, - MonitorRequestReasonUserInputSessionSwitch, - MonitorRequestReasonUserInputInitialization, - MonitorRequestReasonPdcSignalWindowsMobilePwrNotif, // PDC_SIGNAL_PROVIDER_PWRNOTIF_SVC - MonitorRequestReasonPdcSignalWindowsMobileShell, // PDC_SIGNAL_PROVIDER_UM_CS_CONTROL - MonitorRequestReasonPdcSignalHeyCortana, // PDC_SIGNAL_PROVIDER_HEY_CORTANA - MonitorRequestReasonPdcSignalHolographicShell, // PDC_SIGNAL_PROVIDER_HOLOSI_CRITICAL_BATTERY_WAKE - MonitorRequestReasonPdcSignalFingerprint, // PDC_SIGNAL_PROVIDER_WINBIO - MonitorRequestReasonDirectedDrips, - MonitorRequestReasonMax -} POWER_MONITOR_REQUEST_REASON; - -typedef enum _POWER_MONITOR_REQUEST_TYPE { - MonitorRequestTypeOff, - MonitorRequestTypeOnAndPresent, - MonitorRequestTypeToggleOn -} POWER_MONITOR_REQUEST_TYPE; - -// -// Monitor invocation -// -typedef struct _POWER_MONITOR_INVOCATION { - BOOLEAN Console; - POWER_MONITOR_REQUEST_REASON RequestReason; -} POWER_MONITOR_INVOCATION, *PPOWER_MONITOR_INVOCATION; - -// -// Last resume performance structure -// - -typedef struct _RESUME_PERFORMANCE { - DWORD PostTimeMs; - ULONGLONG TotalResumeTimeMs; - ULONGLONG ResumeCompleteTimestamp; -} RESUME_PERFORMANCE, *PRESUME_PERFORMANCE; - -// -// Power Setting definitions -// - -typedef enum { - PoAc, - PoDc, - PoHot, - PoConditionMaximum -} SYSTEM_POWER_CONDITION; - -typedef struct { - - // - // Version of this structure. Currently should be set to - // POWER_SETTING_VALUE_VERSION. - // - DWORD Version; - - - // - // GUID representing the power setting being applied. - // - GUID Guid; - - - // - // What power state should this setting be applied to? E.g. - // AC, DC, thermal, ... - // - SYSTEM_POWER_CONDITION PowerCondition; - - // - // Length (in bytes) of the 'Data' member. - // - DWORD DataLength; - - // - // Data which contains the actual setting value. - // - BYTE Data[ANYSIZE_ARRAY]; -} SET_POWER_SETTING_VALUE, *PSET_POWER_SETTING_VALUE; - -#define POWER_SETTING_VALUE_VERSION (0x1) - -typedef struct { - GUID Guid; -} NOTIFY_USER_POWER_SETTING, *PNOTIFY_USER_POWER_SETTING; - -// -// Package definition for an experience button device notification. When -// someone registers for GUID_EXPERIENCE_BUTTON, this is the definition of -// the setting data they'll get. -// -typedef struct _APPLICATIONLAUNCH_SETTING_VALUE { - - // - // System time when the most recent button press ocurred. Note that this is - // specified in 100ns internvals since January 1, 1601. - // - LARGE_INTEGER ActivationTime; - - // - // Reserved for internal use. - // - DWORD Flags; - - // - // which instance of this device was pressed? - // - DWORD ButtonInstanceID; - - -} APPLICATIONLAUNCH_SETTING_VALUE, *PAPPLICATIONLAUNCH_SETTING_VALUE; - -// -// define platform roles -// - -typedef enum _POWER_PLATFORM_ROLE { - PlatformRoleUnspecified = 0, - PlatformRoleDesktop, - PlatformRoleMobile, - PlatformRoleWorkstation, - PlatformRoleEnterpriseServer, - PlatformRoleSOHOServer, - PlatformRoleAppliancePC, - PlatformRolePerformanceServer, // v1 last supported - PlatformRoleSlate, // v2 last supported - PlatformRoleMaximum -} POWER_PLATFORM_ROLE, *PPOWER_PLATFORM_ROLE; - -#define POWER_PLATFORM_ROLE_V1 (0x00000001) -#define POWER_PLATFORM_ROLE_V1_MAX (PlatformRolePerformanceServer + 1) - -#define POWER_PLATFORM_ROLE_V2 (0x00000002) -#define POWER_PLATFORM_ROLE_V2_MAX (PlatformRoleSlate + 1) - -#if (NTDDI_VERSION >= NTDDI_WIN8) - -#define POWER_PLATFORM_ROLE_VERSION POWER_PLATFORM_ROLE_V2 -#define POWER_PLATFORM_ROLE_VERSION_MAX POWER_PLATFORM_ROLE_V2_MAX - -#else - -#define POWER_PLATFORM_ROLE_VERSION POWER_PLATFORM_ROLE_V1 -#define POWER_PLATFORM_ROLE_VERSION_MAX POWER_PLATFORM_ROLE_V1_MAX - -#endif - -typedef struct _POWER_PLATFORM_INFORMATION { - BOOLEAN AoAc; -} POWER_PLATFORM_INFORMATION, *PPOWER_PLATFORM_INFORMATION; - -// -// System power manager capabilities -// - -#if (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_) -typedef struct { - DWORD Granularity; - DWORD Capacity; -} BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE; -#endif // (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_) - -// - -typedef struct { - DWORD Frequency; - DWORD Flags; - DWORD PercentFrequency; -} PPM_WMI_LEGACY_PERFSTATE, *PPPM_WMI_LEGACY_PERFSTATE; - -typedef struct { - DWORD Latency; - DWORD Power; - DWORD TimeCheck; - BYTE PromotePercent; - BYTE DemotePercent; - BYTE StateType; - BYTE Reserved; - DWORD StateFlags; - DWORD Context; - DWORD IdleHandler; - DWORD Reserved1; // reserved for future use -} PPM_WMI_IDLE_STATE, *PPPM_WMI_IDLE_STATE; - -typedef struct { - DWORD Type; - DWORD Count; - DWORD TargetState; // current idle state - DWORD OldState; // previous idle state - DWORD64 TargetProcessors; - PPM_WMI_IDLE_STATE State[ANYSIZE_ARRAY]; -} PPM_WMI_IDLE_STATES, *PPPM_WMI_IDLE_STATES; - -typedef struct { - DWORD Type; - DWORD Count; - DWORD TargetState; // current idle state - DWORD OldState; // previous idle state - PVOID TargetProcessors; - PPM_WMI_IDLE_STATE State[ANYSIZE_ARRAY]; -} PPM_WMI_IDLE_STATES_EX, *PPPM_WMI_IDLE_STATES_EX; - -typedef struct { - DWORD Frequency; // in Mhz - DWORD Power; // in milliwatts - BYTE PercentFrequency; - BYTE IncreaseLevel; // goto higher state - BYTE DecreaseLevel; // goto lower state - BYTE Type; // performance or throttle - DWORD IncreaseTime; // in tick counts - DWORD DecreaseTime; // in tick counts - DWORD64 Control; // control value - DWORD64 Status; // control value - DWORD HitCount; - DWORD Reserved1; // reserved for future use - DWORD64 Reserved2; - DWORD64 Reserved3; -} PPM_WMI_PERF_STATE, *PPPM_WMI_PERF_STATE; - -typedef struct { - DWORD Count; - DWORD MaxFrequency; - DWORD CurrentState; // current state - DWORD MaxPerfState; // fastest state considering policy restrictions - DWORD MinPerfState; // slowest state considering policy restrictions - DWORD LowestPerfState; // slowest perf state, fixed, aka the "knee" - DWORD ThermalConstraint; - BYTE BusyAdjThreshold; - BYTE PolicyType; // domain coordination - BYTE Type; - BYTE Reserved; - DWORD TimerInterval; - DWORD64 TargetProcessors; // domain affinity - DWORD PStateHandler; - DWORD PStateContext; - DWORD TStateHandler; - DWORD TStateContext; - DWORD FeedbackHandler; - DWORD Reserved1; - DWORD64 Reserved2; - PPM_WMI_PERF_STATE State[ANYSIZE_ARRAY]; -} PPM_WMI_PERF_STATES, *PPPM_WMI_PERF_STATES; - -typedef struct { - DWORD Count; - DWORD MaxFrequency; - DWORD CurrentState; // current state - DWORD MaxPerfState; // fastest state considering policy restrictions - DWORD MinPerfState; // slowest state considering policy restrictions - DWORD LowestPerfState; // slowest perf state, fixed, aka the "knee" - DWORD ThermalConstraint; - BYTE BusyAdjThreshold; - BYTE PolicyType; // domain coordination - BYTE Type; - BYTE Reserved; - DWORD TimerInterval; - PVOID TargetProcessors; // domain affinity - DWORD PStateHandler; - DWORD PStateContext; - DWORD TStateHandler; - DWORD TStateContext; - DWORD FeedbackHandler; - DWORD Reserved1; - DWORD64 Reserved2; - PPM_WMI_PERF_STATE State[ANYSIZE_ARRAY]; -} PPM_WMI_PERF_STATES_EX, *PPPM_WMI_PERF_STATES_EX; - -// -// Legacy processor idle accounting. -// - -#define PROC_IDLE_BUCKET_COUNT 6 - -typedef struct { - DWORD IdleTransitions; - DWORD FailedTransitions; - DWORD InvalidBucketIndex; - DWORD64 TotalTime; - DWORD IdleTimeBuckets[PROC_IDLE_BUCKET_COUNT]; -} PPM_IDLE_STATE_ACCOUNTING, *PPPM_IDLE_STATE_ACCOUNTING; - -typedef struct { - DWORD StateCount; - DWORD TotalTransitions; - DWORD ResetCount; - DWORD64 StartTime; - PPM_IDLE_STATE_ACCOUNTING State[ANYSIZE_ARRAY]; -} PPM_IDLE_ACCOUNTING, *PPPM_IDLE_ACCOUNTING; - -// -// Processor idle accounting. -// - -#define PROC_IDLE_BUCKET_COUNT_EX 16 - -typedef struct { - DWORD64 TotalTimeUs; - DWORD MinTimeUs; - DWORD MaxTimeUs; - DWORD Count; -} PPM_IDLE_STATE_BUCKET_EX, *PPPM_IDLE_STATE_BUCKET_EX; - -typedef struct { - DWORD64 TotalTime; - DWORD IdleTransitions; - DWORD FailedTransitions; - DWORD InvalidBucketIndex; - DWORD MinTimeUs; - DWORD MaxTimeUs; - DWORD CancelledTransitions; - PPM_IDLE_STATE_BUCKET_EX IdleTimeBuckets[PROC_IDLE_BUCKET_COUNT_EX]; -} PPM_IDLE_STATE_ACCOUNTING_EX, *PPPM_IDLE_STATE_ACCOUNTING_EX; - -typedef struct { - DWORD StateCount; - DWORD TotalTransitions; - DWORD ResetCount; - DWORD AbortCount; - DWORD64 StartTime; - _Field_size_(StateCount) PPM_IDLE_STATE_ACCOUNTING_EX State[ANYSIZE_ARRAY]; -} PPM_IDLE_ACCOUNTING_EX, *PPPM_IDLE_ACCOUNTING_EX; - -// -// Definitions of coordination types for _PSD, _TSD, and _CSD BIOS objects from -// the Acpi 3.0 specification -// - -#define ACPI_PPM_SOFTWARE_ALL 0xFC -#define ACPI_PPM_SOFTWARE_ANY 0xFD -#define ACPI_PPM_HARDWARE_ALL 0xFE - -// -// Definition of Microsoft PPM coordination types. -// - -#define MS_PPM_SOFTWARE_ALL 0x1 - -// -// Processor firmware rundown feature bit definitions. -// - -#define PPM_FIRMWARE_ACPI1C2 0x00000001 -#define PPM_FIRMWARE_ACPI1C3 0x00000002 -#define PPM_FIRMWARE_ACPI1TSTATES 0x00000004 -#define PPM_FIRMWARE_CST 0x00000008 -#define PPM_FIRMWARE_CSD 0x00000010 -#define PPM_FIRMWARE_PCT 0x00000020 -#define PPM_FIRMWARE_PSS 0x00000040 -#define PPM_FIRMWARE_XPSS 0x00000080 -#define PPM_FIRMWARE_PPC 0x00000100 -#define PPM_FIRMWARE_PSD 0x00000200 -#define PPM_FIRMWARE_PTC 0x00000400 -#define PPM_FIRMWARE_TSS 0x00000800 -#define PPM_FIRMWARE_TPC 0x00001000 -#define PPM_FIRMWARE_TSD 0x00002000 -#define PPM_FIRMWARE_PCCH 0x00004000 -#define PPM_FIRMWARE_PCCP 0x00008000 -#define PPM_FIRMWARE_OSC 0x00010000 -#define PPM_FIRMWARE_PDC 0x00020000 -#define PPM_FIRMWARE_CPC 0x00040000 -#define PPM_FIRMWARE_LPI 0x00080000 - -// -// Processor performance and idle controls implementations. -// - -#define PPM_PERFORMANCE_IMPLEMENTATION_NONE 0x00000000 -#define PPM_PERFORMANCE_IMPLEMENTATION_PSTATES 0x00000001 -#define PPM_PERFORMANCE_IMPLEMENTATION_PCCV1 0x00000002 -#define PPM_PERFORMANCE_IMPLEMENTATION_CPPC 0x00000003 -#define PPM_PERFORMANCE_IMPLEMENTATION_PEP 0x00000004 - -#define PPM_IDLE_IMPLEMENTATION_NONE 0x00000000 -#define PPM_IDLE_IMPLEMENTATION_CSTATES 0x00000001 -#define PPM_IDLE_IMPLEMENTATION_PEP 0x00000002 -#define PPM_IDLE_IMPLEMENTATION_MICROPEP 0x00000003 -#define PPM_IDLE_IMPLEMENTATION_LPISTATES 0x00000004 - -// -// Processor Power Management WMI interface. -// - -// {A5B32DDD-7F39-4abc-B892-900E43B59EBB} -DEFINE_GUID(PPM_PERFSTATE_CHANGE_GUID, -0xa5b32ddd, 0x7f39, 0x4abc, 0xb8, 0x92, 0x90, 0xe, 0x43, 0xb5, 0x9e, 0xbb); - -// {995e6b7f-d653-497a-b978-36a30c29bf01} -DEFINE_GUID(PPM_PERFSTATE_DOMAIN_CHANGE_GUID, -0x995e6b7f, 0xd653, 0x497a, 0xb9, 0x78, 0x36, 0xa3, 0xc, 0x29, 0xbf, 0x1); - -// {4838fe4f-f71c-4e51-9ecc-8430a7ac4c6c} -DEFINE_GUID(PPM_IDLESTATE_CHANGE_GUID, -0x4838fe4f, 0xf71c, 0x4e51, 0x9e, 0xcc, 0x84, 0x30, 0xa7, 0xac, 0x4c, 0x6c); - -// {5708cc20-7d40-4bf4-b4aa-2b01338d0126} -DEFINE_GUID(PPM_PERFSTATES_DATA_GUID, -0x5708cc20, 0x7d40, 0x4bf4, 0xb4, 0xaa, 0x2b, 0x01, 0x33, 0x8d, 0x01, 0x26); - -// {ba138e10-e250-4ad7-8616-cf1a7ad410e7} -DEFINE_GUID(PPM_IDLESTATES_DATA_GUID, -0xba138e10, 0xe250, 0x4ad7, 0x86, 0x16, 0xcf, 0x1a, 0x7a, 0xd4, 0x10, 0xe7); - -// {e2a26f78-ae07-4ee0-a30f-ce354f5a94cd} -DEFINE_GUID(PPM_IDLE_ACCOUNTING_GUID, -0xe2a26f78, 0xae07, 0x4ee0, 0xa3, 0x0f, 0xce, 0x54, 0xf5, 0x5a, 0x94, 0xcd); - -// {d67abd39-81f8-4a5e-8152-72e31ec912ee} -DEFINE_GUID(PPM_IDLE_ACCOUNTING_EX_GUID, -0xd67abd39, 0x81f8, 0x4a5e, 0x81, 0x52, 0x72, 0xe3, 0x1e, 0xc9, 0x12, 0xee); - -// {a852c2c8-1a4c-423b-8c2c-f30d82931a88} -DEFINE_GUID(PPM_THERMALCONSTRAINT_GUID, -0xa852c2c8, 0x1a4c, 0x423b, 0x8c, 0x2c, 0xf3, 0x0d, 0x82, 0x93, 0x1a, 0x88); - -// {7fd18652-0cfe-40d2-b0a1-0b066a87759e} -DEFINE_GUID(PPM_PERFMON_PERFSTATE_GUID, -0x7fd18652, 0xcfe, 0x40d2, 0xb0, 0xa1, 0xb, 0x6, 0x6a, 0x87, 0x75, 0x9e); - -// {48f377b8-6880-4c7b-8bdc-380176c6654d} -DEFINE_GUID(PPM_THERMAL_POLICY_CHANGE_GUID, -0x48f377b8, 0x6880, 0x4c7b, 0x8b, 0xdc, 0x38, 0x1, 0x76, 0xc6, 0x65, 0x4d); - - -typedef struct { - DWORD State; - DWORD Status; - DWORD Latency; - DWORD Speed; - DWORD Processor; -} PPM_PERFSTATE_EVENT, *PPPM_PERFSTATE_EVENT; - -typedef struct { - DWORD State; - DWORD Latency; - DWORD Speed; - DWORD64 Processors; -} PPM_PERFSTATE_DOMAIN_EVENT, *PPPM_PERFSTATE_DOMAIN_EVENT; - -typedef struct { - DWORD NewState; - DWORD OldState; - DWORD64 Processors; -} PPM_IDLESTATE_EVENT, *PPPM_IDLESTATE_EVENT; - -typedef struct { - DWORD ThermalConstraint; - DWORD64 Processors; -} PPM_THERMALCHANGE_EVENT, *PPPM_THERMALCHANGE_EVENT; - -#pragma warning(push) -#pragma warning(disable:4121) - -typedef struct { - BYTE Mode; - DWORD64 Processors; -} PPM_THERMAL_POLICY_EVENT, *PPPM_THERMAL_POLICY_EVENT; - -#pragma warning(pop) - -// Power Policy Management interfaces -// - -typedef struct { - POWER_ACTION Action; - DWORD Flags; - DWORD EventCode; -} POWER_ACTION_POLICY, *PPOWER_ACTION_POLICY; - -// POWER_ACTION_POLICY->Flags: -#define POWER_ACTION_QUERY_ALLOWED 0x00000001 -#define POWER_ACTION_UI_ALLOWED 0x00000002 -#define POWER_ACTION_OVERRIDE_APPS 0x00000004 -#define POWER_ACTION_HIBERBOOT 0x00000008 -#define POWER_ACTION_USER_NOTIFY 0x00000010 // Indicate User-mode of an impending action. -#define POWER_ACTION_DOZE_TO_HIBERNATE 0x00000020 -#define POWER_ACTION_ACPI_CRITICAL 0x01000000 -#define POWER_ACTION_ACPI_USER_NOTIFY 0x02000000 -#define POWER_ACTION_DIRECTED_DRIPS 0x04000000 -#define POWER_ACTION_PSEUDO_TRANSITION 0x08000000 -#define POWER_ACTION_LIGHTEST_FIRST 0x10000000 -#define POWER_ACTION_LOCK_CONSOLE 0x20000000 -#define POWER_ACTION_DISABLE_WAKES 0x40000000 -#define POWER_ACTION_CRITICAL 0x80000000 - -// POWER_ACTION_POLICY->EventCode flags -#define POWER_LEVEL_USER_NOTIFY_TEXT 0x00000001 -#define POWER_LEVEL_USER_NOTIFY_SOUND 0x00000002 -#define POWER_LEVEL_USER_NOTIFY_EXEC 0x00000004 -#define POWER_USER_NOTIFY_BUTTON 0x00000008 -#define POWER_USER_NOTIFY_SHUTDOWN 0x00000010 // Application and Services are intimated of shutdown. -#define POWER_USER_NOTIFY_FORCED_SHUTDOWN 0x00000020 // Immediate shutdown - Application and Services are not intimated. -#define POWER_FORCE_TRIGGER_RESET 0x80000000 - -// Note: for battery alarm EventCodes, the ID of the battery alarm << 16 is ORed -// into the flags. For example: DISCHARGE_POLICY_LOW << 16 - -// -// The GUID_BATTERY_DISCHARGE_FLAGS_x power settings use a subset of EventCode -// flags. The POWER_FORCE_TRIGGER_RESET flag doesn't make sense for a battery -// alarm so it is overloaded for other purposes (gerneral enable/disable). -#define BATTERY_DISCHARGE_FLAGS_EVENTCODE_MASK 0x00000007 -#define BATTERY_DISCHARGE_FLAGS_ENABLE 0x80000000 - -// system battery drain policies -typedef struct { - BOOLEAN Enable; - BYTE Spare[3]; - DWORD BatteryLevel; - POWER_ACTION_POLICY PowerPolicy; - SYSTEM_POWER_STATE MinSystemState; -} SYSTEM_POWER_LEVEL, *PSYSTEM_POWER_LEVEL; - -// Discharge policy constants -#define NUM_DISCHARGE_POLICIES 4 -#define DISCHARGE_POLICY_CRITICAL 0 -#define DISCHARGE_POLICY_LOW 1 - - -// system power policies -typedef struct _SYSTEM_POWER_POLICY { - DWORD Revision; // 1 - - // events - POWER_ACTION_POLICY PowerButton; - POWER_ACTION_POLICY SleepButton; - POWER_ACTION_POLICY LidClose; - SYSTEM_POWER_STATE LidOpenWake; - DWORD Reserved; - - // "system idle" detection - POWER_ACTION_POLICY Idle; - DWORD IdleTimeout; - BYTE IdleSensitivity; - - BYTE DynamicThrottle; - BYTE Spare2[2]; - - // meaning of power action "sleep" - SYSTEM_POWER_STATE MinSleep; - SYSTEM_POWER_STATE MaxSleep; - SYSTEM_POWER_STATE ReducedLatencySleep; - DWORD WinLogonFlags; - - DWORD Spare3; - - // parameters for dozing - // - DWORD DozeS4Timeout; - - // battery policies - DWORD BroadcastCapacityResolution; - SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; - - // video policies - DWORD VideoTimeout; - BOOLEAN VideoDimDisplay; - DWORD VideoReserved[3]; - - // hard disk policies - DWORD SpindownTimeout; - - // processor policies - BOOLEAN OptimizeForPower; - BYTE FanThrottleTolerance; - BYTE ForcedThrottle; - BYTE MinThrottle; - POWER_ACTION_POLICY OverThrottled; - -} SYSTEM_POWER_POLICY, *PSYSTEM_POWER_POLICY; - - -// processor power policy state - -// -// Processor Idle State Policy. -// - -#define PROCESSOR_IDLESTATE_POLICY_COUNT 0x3 - -typedef struct { - DWORD TimeCheck; - BYTE DemotePercent; - BYTE PromotePercent; - BYTE Spare[2]; -} PROCESSOR_IDLESTATE_INFO, *PPROCESSOR_IDLESTATE_INFO; - -typedef struct { - WORD Revision; - union { - WORD AsWORD ; - struct { - WORD AllowScaling : 1; - WORD Disabled : 1; - WORD Reserved : 14; - } DUMMYSTRUCTNAME; - } Flags; - - DWORD PolicyCount; - PROCESSOR_IDLESTATE_INFO Policy[PROCESSOR_IDLESTATE_POLICY_COUNT]; -} PROCESSOR_IDLESTATE_POLICY, *PPROCESSOR_IDLESTATE_POLICY; - -// -// Legacy Processor Policy. This is only provided to allow legacy -// applications to compile. New applications must use -// PROCESSOR_IDLESTATE_POLICY. -// - -#define PO_THROTTLE_NONE 0 -#define PO_THROTTLE_CONSTANT 1 -#define PO_THROTTLE_DEGRADE 2 -#define PO_THROTTLE_ADAPTIVE 3 -#define PO_THROTTLE_MAXIMUM 4 // not a policy, just a limit - - -typedef struct _PROCESSOR_POWER_POLICY_INFO { - - // Time based information (will be converted to kernel units) - DWORD TimeCheck; // in US - DWORD DemoteLimit; // in US - DWORD PromoteLimit; // in US - - // Percentage based information - BYTE DemotePercent; - BYTE PromotePercent; - BYTE Spare[2]; - - // Flags - DWORD AllowDemotion:1; - DWORD AllowPromotion:1; - DWORD Reserved:30; - -} PROCESSOR_POWER_POLICY_INFO, *PPROCESSOR_POWER_POLICY_INFO; - -// processor power policy -typedef struct _PROCESSOR_POWER_POLICY { - DWORD Revision; // 1 - - // Dynamic Throttling Policy - BYTE DynamicThrottle; - BYTE Spare[3]; - - // Flags - DWORD DisableCStates:1; - DWORD Reserved:31; - - // System policy information - // The Array is last, in case it needs to be grown and the structure - // revision incremented. - DWORD PolicyCount; - PROCESSOR_POWER_POLICY_INFO Policy[3]; - -} PROCESSOR_POWER_POLICY, *PPROCESSOR_POWER_POLICY; - -// -// Processor Perf State Policy. -// - -typedef struct { - DWORD Revision; - BYTE MaxThrottle; - BYTE MinThrottle; - BYTE BusyAdjThreshold; - union { - BYTE Spare; - union { - BYTE AsBYTE ; - struct { - BYTE NoDomainAccounting : 1; - BYTE IncreasePolicy: 2; - BYTE DecreasePolicy: 2; - BYTE Reserved : 3; - } DUMMYSTRUCTNAME; - } Flags; - } DUMMYUNIONNAME; - - DWORD TimeCheck; - DWORD IncreaseTime; - DWORD DecreaseTime; - DWORD IncreasePercent; - DWORD DecreasePercent; -} PROCESSOR_PERFSTATE_POLICY, *PPROCESSOR_PERFSTATE_POLICY; - -// administrator power policy overrides -typedef struct _ADMINISTRATOR_POWER_POLICY { - - // meaning of power action "sleep" - SYSTEM_POWER_STATE MinSleep; - SYSTEM_POWER_STATE MaxSleep; - - // video policies - DWORD MinVideoTimeout; - DWORD MaxVideoTimeout; - - // disk policies - DWORD MinSpindownTimeout; - DWORD MaxSpindownTimeout; -} ADMINISTRATOR_POWER_POLICY, *PADMINISTRATOR_POWER_POLICY; - - -typedef enum _HIBERFILE_BUCKET_SIZE { - HiberFileBucket1GB = 0, - HiberFileBucket2GB, - HiberFileBucket4GB, - HiberFileBucket8GB, - HiberFileBucket16GB, - HiberFileBucket32GB, - HiberFileBucketUnlimited, - HiberFileBucketMax -} HIBERFILE_BUCKET_SIZE, *PHIBERFILE_BUCKET_SIZE; - -#define HIBERFILE_TYPE_NONE 0x00 -#define HIBERFILE_TYPE_REDUCED 0x01 -#define HIBERFILE_TYPE_FULL 0x02 -#define HIBERFILE_TYPE_MAX 0x03 - -typedef struct _HIBERFILE_BUCKET { - DWORD64 MaxPhysicalMemory; - DWORD PhysicalMemoryPercent[HIBERFILE_TYPE_MAX]; -} HIBERFILE_BUCKET, *PHIBERFILE_BUCKET; - -typedef struct { - // Misc supported system features - BOOLEAN PowerButtonPresent; - BOOLEAN SleepButtonPresent; - BOOLEAN LidPresent; - BOOLEAN SystemS1; - BOOLEAN SystemS2; - BOOLEAN SystemS3; - BOOLEAN SystemS4; // hibernate - BOOLEAN SystemS5; // off - BOOLEAN HiberFilePresent; - BOOLEAN FullWake; - BOOLEAN VideoDimPresent; - BOOLEAN ApmPresent; - BOOLEAN UpsPresent; - - // Processors - BOOLEAN ThermalControl; - BOOLEAN ProcessorThrottle; - BYTE ProcessorMinThrottle; - -#if (NTDDI_VERSION < NTDDI_WINXP) - BYTE ProcessorThrottleScale; - BYTE spare2[4]; -#else - BYTE ProcessorMaxThrottle; - BOOLEAN FastSystemS4; - BOOLEAN Hiberboot; - BOOLEAN WakeAlarmPresent; - BOOLEAN AoAc; -#endif // (NTDDI_VERSION < NTDDI_WINXP) - - // Disk - BOOLEAN DiskSpinDown; - -#if (NTDDI_VERSION < NTDDI_WINTHRESHOLD) - BYTE spare3[8]; -# else - // HiberFile - BYTE HiberFileType; - BOOLEAN AoAcConnectivitySupported; - BYTE spare3[6]; -#endif // (NTDDI_VERSION < NTDDI_WINTHRESHOLD) - - // System Battery - BOOLEAN SystemBatteriesPresent; - BOOLEAN BatteriesAreShortTerm; - BATTERY_REPORTING_SCALE BatteryScale[3]; - - // Wake - SYSTEM_POWER_STATE AcOnLineWake; - SYSTEM_POWER_STATE SoftLidWake; - SYSTEM_POWER_STATE RtcWake; - SYSTEM_POWER_STATE MinDeviceWakeState; // note this may change on driver load - SYSTEM_POWER_STATE DefaultLowLatencyWake; -} SYSTEM_POWER_CAPABILITIES, *PSYSTEM_POWER_CAPABILITIES; - -typedef struct { - BOOLEAN AcOnLine; - BOOLEAN BatteryPresent; - BOOLEAN Charging; - BOOLEAN Discharging; - BOOLEAN Spare1[3]; - - BYTE Tag; - - DWORD MaxCapacity; - DWORD RemainingCapacity; - DWORD Rate; - DWORD EstimatedTime; - - DWORD DefaultAlert1; - DWORD DefaultAlert2; -} SYSTEM_BATTERY_STATE, *PSYSTEM_BATTERY_STATE; - - - -// -// Image Format -// - - -#ifndef _MAC - -#include "pshpack4.h" // 4 byte packing is the default - -#define IMAGE_DOS_SIGNATURE 0x5A4D // MZ -#define IMAGE_OS2_SIGNATURE 0x454E // NE -#define IMAGE_OS2_SIGNATURE_LE 0x454C // LE -#define IMAGE_VXD_SIGNATURE 0x454C // LE -#define IMAGE_NT_SIGNATURE 0x00004550 // PE00 - -#include "pshpack2.h" // 16 bit headers are 2 byte packed - -#else - -#include "pshpack1.h" - -#define IMAGE_DOS_SIGNATURE 0x4D5A // MZ -#define IMAGE_OS2_SIGNATURE 0x4E45 // NE -#define IMAGE_OS2_SIGNATURE_LE 0x4C45 // LE -#define IMAGE_NT_SIGNATURE 0x50450000 // PE00 -#endif - -typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header - WORD e_magic; // Magic number - WORD e_cblp; // Bytes on last page of file - WORD e_cp; // Pages in file - WORD e_crlc; // Relocations - WORD e_cparhdr; // Size of header in paragraphs - WORD e_minalloc; // Minimum extra paragraphs needed - WORD e_maxalloc; // Maximum extra paragraphs needed - WORD e_ss; // Initial (relative) SS value - WORD e_sp; // Initial SP value - WORD e_csum; // Checksum - WORD e_ip; // Initial IP value - WORD e_cs; // Initial (relative) CS value - WORD e_lfarlc; // File address of relocation table - WORD e_ovno; // Overlay number - WORD e_res[4]; // Reserved words - WORD e_oemid; // OEM identifier (for e_oeminfo) - WORD e_oeminfo; // OEM information; e_oemid specific - WORD e_res2[10]; // Reserved words - LONG e_lfanew; // File address of new exe header - } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; - -typedef struct _IMAGE_OS2_HEADER { // OS/2 .EXE header - WORD ne_magic; // Magic number - CHAR ne_ver; // Version number - CHAR ne_rev; // Revision number - WORD ne_enttab; // Offset of Entry Table - WORD ne_cbenttab; // Number of bytes in Entry Table - LONG ne_crc; // Checksum of whole file - WORD ne_flags; // Flag word - WORD ne_autodata; // Automatic data segment number - WORD ne_heap; // Initial heap allocation - WORD ne_stack; // Initial stack allocation - LONG ne_csip; // Initial CS:IP setting - LONG ne_sssp; // Initial SS:SP setting - WORD ne_cseg; // Count of file segments - WORD ne_cmod; // Entries in Module Reference Table - WORD ne_cbnrestab; // Size of non-resident name table - WORD ne_segtab; // Offset of Segment Table - WORD ne_rsrctab; // Offset of Resource Table - WORD ne_restab; // Offset of resident name table - WORD ne_modtab; // Offset of Module Reference Table - WORD ne_imptab; // Offset of Imported Names Table - LONG ne_nrestab; // Offset of Non-resident Names Table - WORD ne_cmovent; // Count of movable entries - WORD ne_align; // Segment alignment shift count - WORD ne_cres; // Count of resource segments - BYTE ne_exetyp; // Target Operating system - BYTE ne_flagsothers; // Other .EXE flags - WORD ne_pretthunks; // offset to return thunks - WORD ne_psegrefbytes; // offset to segment ref. bytes - WORD ne_swaparea; // Minimum code swap area size - WORD ne_expver; // Expected Windows version number - } IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER; - -typedef struct _IMAGE_VXD_HEADER { // Windows VXD header - WORD e32_magic; // Magic number - BYTE e32_border; // The byte ordering for the VXD - BYTE e32_worder; // The word ordering for the VXD - DWORD e32_level; // The EXE format level for now = 0 - WORD e32_cpu; // The CPU type - WORD e32_os; // The OS type - DWORD e32_ver; // Module version - DWORD e32_mflags; // Module flags - DWORD e32_mpages; // Module # pages - DWORD e32_startobj; // Object # for instruction pointer - DWORD e32_eip; // Extended instruction pointer - DWORD e32_stackobj; // Object # for stack pointer - DWORD e32_esp; // Extended stack pointer - DWORD e32_pagesize; // VXD page size - DWORD e32_lastpagesize; // Last page size in VXD - DWORD e32_fixupsize; // Fixup section size - DWORD e32_fixupsum; // Fixup section checksum - DWORD e32_ldrsize; // Loader section size - DWORD e32_ldrsum; // Loader section checksum - DWORD e32_objtab; // Object table offset - DWORD e32_objcnt; // Number of objects in module - DWORD e32_objmap; // Object page map offset - DWORD e32_itermap; // Object iterated data map offset - DWORD e32_rsrctab; // Offset of Resource Table - DWORD e32_rsrccnt; // Number of resource entries - DWORD e32_restab; // Offset of resident name table - DWORD e32_enttab; // Offset of Entry Table - DWORD e32_dirtab; // Offset of Module Directive Table - DWORD e32_dircnt; // Number of module directives - DWORD e32_fpagetab; // Offset of Fixup Page Table - DWORD e32_frectab; // Offset of Fixup Record Table - DWORD e32_impmod; // Offset of Import Module Name Table - DWORD e32_impmodcnt; // Number of entries in Import Module Name Table - DWORD e32_impproc; // Offset of Import Procedure Name Table - DWORD e32_pagesum; // Offset of Per-Page Checksum Table - DWORD e32_datapage; // Offset of Enumerated Data Pages - DWORD e32_preload; // Number of preload pages - DWORD e32_nrestab; // Offset of Non-resident Names Table - DWORD e32_cbnrestab; // Size of Non-resident Name Table - DWORD e32_nressum; // Non-resident Name Table Checksum - DWORD e32_autodata; // Object # for automatic data object - DWORD e32_debuginfo; // Offset of the debugging information - DWORD e32_debuglen; // The length of the debugging info. in bytes - DWORD e32_instpreload; // Number of instance pages in preload section of VXD file - DWORD e32_instdemand; // Number of instance pages in demand load section of VXD file - DWORD e32_heapsize; // Size of heap - for 16-bit apps - BYTE e32_res3[12]; // Reserved words - DWORD e32_winresoff; - DWORD e32_winreslen; - WORD e32_devid; // Device ID for VxD - WORD e32_ddkver; // DDK version for VxD - } IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER; - -#ifndef _MAC -#include "poppack.h" // Back to 4 byte packing -#endif - -// -// File header format. -// - -typedef struct _IMAGE_FILE_HEADER { - WORD Machine; - WORD NumberOfSections; - DWORD TimeDateStamp; - DWORD PointerToSymbolTable; - DWORD NumberOfSymbols; - WORD SizeOfOptionalHeader; - WORD Characteristics; -} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; - -#define IMAGE_SIZEOF_FILE_HEADER 20 - -#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 // Relocation info stripped from file. -#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 // File is executable (i.e. no unresolved external references). -#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 // Line nunbers stripped from file. -#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 // Local symbols stripped from file. -#define IMAGE_FILE_AGGRESIVE_WS_TRIM 0x0010 // Aggressively trim working set -#define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 // App can handle >2gb addresses -#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 // Bytes of machine word are reversed. -#define IMAGE_FILE_32BIT_MACHINE 0x0100 // 32 bit word machine. -#define IMAGE_FILE_DEBUG_STRIPPED 0x0200 // Debugging info stripped from file in .DBG file -#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 // If Image is on removable media, copy and run from the swap file. -#define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 // If Image is on Net, copy and run from the swap file. -#define IMAGE_FILE_SYSTEM 0x1000 // System File. -#define IMAGE_FILE_DLL 0x2000 // File is a DLL. -#define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 // File should only be run on a UP machine -#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 // Bytes of machine word are reversed. - -#define IMAGE_FILE_MACHINE_UNKNOWN 0 -#define IMAGE_FILE_MACHINE_TARGET_HOST 0x0001 // Useful for indicating we want to interact with the host and not a WoW guest. -#define IMAGE_FILE_MACHINE_I386 0x014c // Intel 386. -#define IMAGE_FILE_MACHINE_R3000 0x0162 // MIPS little-endian, 0x160 big-endian -#define IMAGE_FILE_MACHINE_R4000 0x0166 // MIPS little-endian -#define IMAGE_FILE_MACHINE_R10000 0x0168 // MIPS little-endian -#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169 // MIPS little-endian WCE v2 -#define IMAGE_FILE_MACHINE_ALPHA 0x0184 // Alpha_AXP -#define IMAGE_FILE_MACHINE_SH3 0x01a2 // SH3 little-endian -#define IMAGE_FILE_MACHINE_SH3DSP 0x01a3 -#define IMAGE_FILE_MACHINE_SH3E 0x01a4 // SH3E little-endian -#define IMAGE_FILE_MACHINE_SH4 0x01a6 // SH4 little-endian -#define IMAGE_FILE_MACHINE_SH5 0x01a8 // SH5 -#define IMAGE_FILE_MACHINE_ARM 0x01c0 // ARM Little-Endian -#define IMAGE_FILE_MACHINE_THUMB 0x01c2 // ARM Thumb/Thumb-2 Little-Endian -#define IMAGE_FILE_MACHINE_ARMNT 0x01c4 // ARM Thumb-2 Little-Endian -#define IMAGE_FILE_MACHINE_AM33 0x01d3 -#define IMAGE_FILE_MACHINE_POWERPC 0x01F0 // IBM PowerPC Little-Endian -#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1 -#define IMAGE_FILE_MACHINE_IA64 0x0200 // Intel 64 -#define IMAGE_FILE_MACHINE_MIPS16 0x0266 // MIPS -#define IMAGE_FILE_MACHINE_ALPHA64 0x0284 // ALPHA64 -#define IMAGE_FILE_MACHINE_MIPSFPU 0x0366 // MIPS -#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466 // MIPS -#define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64 -#define IMAGE_FILE_MACHINE_TRICORE 0x0520 // Infineon -#define IMAGE_FILE_MACHINE_CEF 0x0CEF -#define IMAGE_FILE_MACHINE_EBC 0x0EBC // EFI Byte Code -#define IMAGE_FILE_MACHINE_AMD64 0x8664 // AMD64 (K8) -#define IMAGE_FILE_MACHINE_M32R 0x9041 // M32R little-endian -#define IMAGE_FILE_MACHINE_ARM64 0xAA64 // ARM64 Little-Endian -#define IMAGE_FILE_MACHINE_CEE 0xC0EE - - -// -// Directory format. -// - -typedef struct _IMAGE_DATA_DIRECTORY { - DWORD VirtualAddress; - DWORD Size; -} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; - -#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 - -// -// Optional header format. -// - -typedef struct _IMAGE_OPTIONAL_HEADER { - // - // Standard fields. - // - - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - DWORD BaseOfData; - - // - // NT additional fields. - // - - DWORD ImageBase; - DWORD SectionAlignment; - DWORD FileAlignment; - WORD MajorOperatingSystemVersion; - WORD MinorOperatingSystemVersion; - WORD MajorImageVersion; - WORD MinorImageVersion; - WORD MajorSubsystemVersion; - WORD MinorSubsystemVersion; - DWORD Win32VersionValue; - DWORD SizeOfImage; - DWORD SizeOfHeaders; - DWORD CheckSum; - WORD Subsystem; - WORD DllCharacteristics; - DWORD SizeOfStackReserve; - DWORD SizeOfStackCommit; - DWORD SizeOfHeapReserve; - DWORD SizeOfHeapCommit; - DWORD LoaderFlags; - DWORD NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; - -typedef struct _IMAGE_ROM_OPTIONAL_HEADER { - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - DWORD BaseOfData; - DWORD BaseOfBss; - DWORD GprMask; - DWORD CprMask[4]; - DWORD GpValue; -} IMAGE_ROM_OPTIONAL_HEADER, *PIMAGE_ROM_OPTIONAL_HEADER; - -typedef struct _IMAGE_OPTIONAL_HEADER64 { - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - ULONGLONG ImageBase; - DWORD SectionAlignment; - DWORD FileAlignment; - WORD MajorOperatingSystemVersion; - WORD MinorOperatingSystemVersion; - WORD MajorImageVersion; - WORD MinorImageVersion; - WORD MajorSubsystemVersion; - WORD MinorSubsystemVersion; - DWORD Win32VersionValue; - DWORD SizeOfImage; - DWORD SizeOfHeaders; - DWORD CheckSum; - WORD Subsystem; - WORD DllCharacteristics; - ULONGLONG SizeOfStackReserve; - ULONGLONG SizeOfStackCommit; - ULONGLONG SizeOfHeapReserve; - ULONGLONG SizeOfHeapCommit; - DWORD LoaderFlags; - DWORD NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64; - -#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b -#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b -#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107 - -#ifdef _WIN64 -typedef IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER; -typedef PIMAGE_OPTIONAL_HEADER64 PIMAGE_OPTIONAL_HEADER; -#define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC -#else -typedef IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; -typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; -#define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR32_MAGIC -#endif - -typedef struct _IMAGE_NT_HEADERS64 { - DWORD Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER64 OptionalHeader; -} IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64; - -typedef struct _IMAGE_NT_HEADERS { - DWORD Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER32 OptionalHeader; -} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; - -typedef struct _IMAGE_ROM_HEADERS { - IMAGE_FILE_HEADER FileHeader; - IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; -} IMAGE_ROM_HEADERS, *PIMAGE_ROM_HEADERS; - -#ifdef _WIN64 -typedef IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS; -typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS; -#else -typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; -typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; -#endif - -// IMAGE_FIRST_SECTION doesn't need 32/64 versions since the file header is the same either way. - -#define IMAGE_FIRST_SECTION( ntheader ) ((PIMAGE_SECTION_HEADER) \ - ((ULONG_PTR)(ntheader) + \ - FIELD_OFFSET( IMAGE_NT_HEADERS, OptionalHeader ) + \ - ((ntheader))->FileHeader.SizeOfOptionalHeader \ - )) - -// Subsystem Values - -#define IMAGE_SUBSYSTEM_UNKNOWN 0 // Unknown subsystem. -#define IMAGE_SUBSYSTEM_NATIVE 1 // Image doesn't require a subsystem. -#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 // Image runs in the Windows GUI subsystem. -#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 // Image runs in the Windows character subsystem. -#define IMAGE_SUBSYSTEM_OS2_CUI 5 // image runs in the OS/2 character subsystem. -#define IMAGE_SUBSYSTEM_POSIX_CUI 7 // image runs in the Posix character subsystem. -#define IMAGE_SUBSYSTEM_NATIVE_WINDOWS 8 // image is a native Win9x driver. -#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9 // Image runs in the Windows CE subsystem. -#define IMAGE_SUBSYSTEM_EFI_APPLICATION 10 // -#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 // -#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 // -#define IMAGE_SUBSYSTEM_EFI_ROM 13 -#define IMAGE_SUBSYSTEM_XBOX 14 -#define IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION 16 -#define IMAGE_SUBSYSTEM_XBOX_CODE_CATALOG 17 - -// DllCharacteristics Entries - -// IMAGE_LIBRARY_PROCESS_INIT 0x0001 // Reserved. -// IMAGE_LIBRARY_PROCESS_TERM 0x0002 // Reserved. -// IMAGE_LIBRARY_THREAD_INIT 0x0004 // Reserved. -// IMAGE_LIBRARY_THREAD_TERM 0x0008 // Reserved. -#define IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA 0x0020 // Image can handle a high entropy 64-bit virtual address space. -#define IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 0x0040 // DLL can move. -#define IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY 0x0080 // Code Integrity Image -#define IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100 // Image is NX compatible -#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200 // Image understands isolation and doesn't want it -#define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400 // Image does not use SEH. No SE handler may reside in this image -#define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800 // Do not bind this image. -#define IMAGE_DLLCHARACTERISTICS_APPCONTAINER 0x1000 // Image should execute in an AppContainer -#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000 // Driver uses WDM model -#define IMAGE_DLLCHARACTERISTICS_GUARD_CF 0x4000 // Image supports Control Flow Guard. -#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000 - -// Directory Entries - -#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory -#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Import Directory -#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory -#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Exception Directory -#define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Security Directory -#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 // Base Relocation Table -#define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Debug Directory -// IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (X86 usage) -#define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 7 // Architecture Specific Data -#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // RVA of GP -#define IMAGE_DIRECTORY_ENTRY_TLS 9 // TLS Directory -#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Load Configuration Directory -#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Bound Import Directory in headers -#define IMAGE_DIRECTORY_ENTRY_IAT 12 // Import Address Table -#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 // Delay Load Import Descriptors -#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 // COM Runtime descriptor - -// -// Non-COFF Object file header -// - -typedef struct ANON_OBJECT_HEADER { - WORD Sig1; // Must be IMAGE_FILE_MACHINE_UNKNOWN - WORD Sig2; // Must be 0xffff - WORD Version; // >= 1 (implies the CLSID field is present) - WORD Machine; - DWORD TimeDateStamp; - CLSID ClassID; // Used to invoke CoCreateInstance - DWORD SizeOfData; // Size of data that follows the header -} ANON_OBJECT_HEADER; - -typedef struct ANON_OBJECT_HEADER_V2 { - WORD Sig1; // Must be IMAGE_FILE_MACHINE_UNKNOWN - WORD Sig2; // Must be 0xffff - WORD Version; // >= 2 (implies the Flags field is present - otherwise V1) - WORD Machine; - DWORD TimeDateStamp; - CLSID ClassID; // Used to invoke CoCreateInstance - DWORD SizeOfData; // Size of data that follows the header - DWORD Flags; // 0x1 -> contains metadata - DWORD MetaDataSize; // Size of CLR metadata - DWORD MetaDataOffset; // Offset of CLR metadata -} ANON_OBJECT_HEADER_V2; - -typedef struct ANON_OBJECT_HEADER_BIGOBJ { - /* same as ANON_OBJECT_HEADER_V2 */ - WORD Sig1; // Must be IMAGE_FILE_MACHINE_UNKNOWN - WORD Sig2; // Must be 0xffff - WORD Version; // >= 2 (implies the Flags field is present) - WORD Machine; // Actual machine - IMAGE_FILE_MACHINE_xxx - DWORD TimeDateStamp; - CLSID ClassID; // {D1BAA1C7-BAEE-4ba9-AF20-FAF66AA4DCB8} - DWORD SizeOfData; // Size of data that follows the header - DWORD Flags; // 0x1 -> contains metadata - DWORD MetaDataSize; // Size of CLR metadata - DWORD MetaDataOffset; // Offset of CLR metadata - - /* bigobj specifics */ - DWORD NumberOfSections; // extended from WORD - DWORD PointerToSymbolTable; - DWORD NumberOfSymbols; -} ANON_OBJECT_HEADER_BIGOBJ; - -// -// Section header format. -// - -#define IMAGE_SIZEOF_SHORT_NAME 8 - -typedef struct _IMAGE_SECTION_HEADER { - BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; - union { - DWORD PhysicalAddress; - DWORD VirtualSize; - } Misc; - DWORD VirtualAddress; - DWORD SizeOfRawData; - DWORD PointerToRawData; - DWORD PointerToRelocations; - DWORD PointerToLinenumbers; - WORD NumberOfRelocations; - WORD NumberOfLinenumbers; - DWORD Characteristics; -} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; - -#define IMAGE_SIZEOF_SECTION_HEADER 40 - -// -// Section characteristics. -// -// IMAGE_SCN_TYPE_REG 0x00000000 // Reserved. -// IMAGE_SCN_TYPE_DSECT 0x00000001 // Reserved. -// IMAGE_SCN_TYPE_NOLOAD 0x00000002 // Reserved. -// IMAGE_SCN_TYPE_GROUP 0x00000004 // Reserved. -#define IMAGE_SCN_TYPE_NO_PAD 0x00000008 // Reserved. -// IMAGE_SCN_TYPE_COPY 0x00000010 // Reserved. - -#define IMAGE_SCN_CNT_CODE 0x00000020 // Section contains code. -#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 // Section contains initialized data. -#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 // Section contains uninitialized data. - -#define IMAGE_SCN_LNK_OTHER 0x00000100 // Reserved. -#define IMAGE_SCN_LNK_INFO 0x00000200 // Section contains comments or some other type of information. -// IMAGE_SCN_TYPE_OVER 0x00000400 // Reserved. -#define IMAGE_SCN_LNK_REMOVE 0x00000800 // Section contents will not become part of image. -#define IMAGE_SCN_LNK_COMDAT 0x00001000 // Section contents comdat. -// 0x00002000 // Reserved. -// IMAGE_SCN_MEM_PROTECTED - Obsolete 0x00004000 -#define IMAGE_SCN_NO_DEFER_SPEC_EXC 0x00004000 // Reset speculative exceptions handling bits in the TLB entries for this section. -#define IMAGE_SCN_GPREL 0x00008000 // Section content can be accessed relative to GP -#define IMAGE_SCN_MEM_FARDATA 0x00008000 -// IMAGE_SCN_MEM_SYSHEAP - Obsolete 0x00010000 -#define IMAGE_SCN_MEM_PURGEABLE 0x00020000 -#define IMAGE_SCN_MEM_16BIT 0x00020000 -#define IMAGE_SCN_MEM_LOCKED 0x00040000 -#define IMAGE_SCN_MEM_PRELOAD 0x00080000 - -#define IMAGE_SCN_ALIGN_1BYTES 0x00100000 // -#define IMAGE_SCN_ALIGN_2BYTES 0x00200000 // -#define IMAGE_SCN_ALIGN_4BYTES 0x00300000 // -#define IMAGE_SCN_ALIGN_8BYTES 0x00400000 // -#define IMAGE_SCN_ALIGN_16BYTES 0x00500000 // Default alignment if no others are specified. -#define IMAGE_SCN_ALIGN_32BYTES 0x00600000 // -#define IMAGE_SCN_ALIGN_64BYTES 0x00700000 // -#define IMAGE_SCN_ALIGN_128BYTES 0x00800000 // -#define IMAGE_SCN_ALIGN_256BYTES 0x00900000 // -#define IMAGE_SCN_ALIGN_512BYTES 0x00A00000 // -#define IMAGE_SCN_ALIGN_1024BYTES 0x00B00000 // -#define IMAGE_SCN_ALIGN_2048BYTES 0x00C00000 // -#define IMAGE_SCN_ALIGN_4096BYTES 0x00D00000 // -#define IMAGE_SCN_ALIGN_8192BYTES 0x00E00000 // -// Unused 0x00F00000 -#define IMAGE_SCN_ALIGN_MASK 0x00F00000 - -#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 // Section contains extended relocations. -#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 // Section can be discarded. -#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 // Section is not cachable. -#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 // Section is not pageable. -#define IMAGE_SCN_MEM_SHARED 0x10000000 // Section is shareable. -#define IMAGE_SCN_MEM_EXECUTE 0x20000000 // Section is executable. -#define IMAGE_SCN_MEM_READ 0x40000000 // Section is readable. -#define IMAGE_SCN_MEM_WRITE 0x80000000 // Section is writeable. - -// -// TLS Characteristic Flags -// -#define IMAGE_SCN_SCALE_INDEX 0x00000001 // Tls index is scaled - -#ifndef _MAC -#include "pshpack2.h" // Symbols, relocs, and linenumbers are 2 byte packed -#endif - -// -// Symbol format. -// - -typedef struct _IMAGE_SYMBOL { - union { - BYTE ShortName[8]; - struct { - DWORD Short; // if 0, use LongName - DWORD Long; // offset into string table - } Name; - DWORD LongName[2]; // PBYTE [2] - } N; - DWORD Value; - SHORT SectionNumber; - WORD Type; - BYTE StorageClass; - BYTE NumberOfAuxSymbols; -} IMAGE_SYMBOL; -typedef IMAGE_SYMBOL UNALIGNED *PIMAGE_SYMBOL; - -#define IMAGE_SIZEOF_SYMBOL 18 - -typedef struct _IMAGE_SYMBOL_EX { - union { - BYTE ShortName[8]; - struct { - DWORD Short; // if 0, use LongName - DWORD Long; // offset into string table - } Name; - DWORD LongName[2]; // PBYTE [2] - } N; - DWORD Value; - LONG SectionNumber; - WORD Type; - BYTE StorageClass; - BYTE NumberOfAuxSymbols; -} IMAGE_SYMBOL_EX; -typedef IMAGE_SYMBOL_EX UNALIGNED *PIMAGE_SYMBOL_EX; - -// -// Section values. -// -// Symbols have a section number of the section in which they are -// defined. Otherwise, section numbers have the following meanings: -// - -#define IMAGE_SYM_UNDEFINED (SHORT)0 // Symbol is undefined or is common. -#define IMAGE_SYM_ABSOLUTE (SHORT)-1 // Symbol is an absolute value. -#define IMAGE_SYM_DEBUG (SHORT)-2 // Symbol is a special debug item. -#define IMAGE_SYM_SECTION_MAX 0xFEFF // Values 0xFF00-0xFFFF are special -#define IMAGE_SYM_SECTION_MAX_EX MAXLONG - -// -// Type (fundamental) values. -// - -#define IMAGE_SYM_TYPE_NULL 0x0000 // no type. -#define IMAGE_SYM_TYPE_VOID 0x0001 // -#define IMAGE_SYM_TYPE_CHAR 0x0002 // type character. -#define IMAGE_SYM_TYPE_SHORT 0x0003 // type short integer. -#define IMAGE_SYM_TYPE_INT 0x0004 // -#define IMAGE_SYM_TYPE_LONG 0x0005 // -#define IMAGE_SYM_TYPE_FLOAT 0x0006 // -#define IMAGE_SYM_TYPE_DOUBLE 0x0007 // -#define IMAGE_SYM_TYPE_STRUCT 0x0008 // -#define IMAGE_SYM_TYPE_UNION 0x0009 // -#define IMAGE_SYM_TYPE_ENUM 0x000A // enumeration. -#define IMAGE_SYM_TYPE_MOE 0x000B // member of enumeration. -#define IMAGE_SYM_TYPE_BYTE 0x000C // -#define IMAGE_SYM_TYPE_WORD 0x000D // -#define IMAGE_SYM_TYPE_UINT 0x000E // -#define IMAGE_SYM_TYPE_DWORD 0x000F // -#define IMAGE_SYM_TYPE_PCODE 0x8000 // -// -// Type (derived) values. -// - -#define IMAGE_SYM_DTYPE_NULL 0 // no derived type. -#define IMAGE_SYM_DTYPE_POINTER 1 // pointer. -#define IMAGE_SYM_DTYPE_FUNCTION 2 // function. -#define IMAGE_SYM_DTYPE_ARRAY 3 // array. - -// -// Storage classes. -// -#define IMAGE_SYM_CLASS_END_OF_FUNCTION (BYTE )-1 -#define IMAGE_SYM_CLASS_NULL 0x0000 -#define IMAGE_SYM_CLASS_AUTOMATIC 0x0001 -#define IMAGE_SYM_CLASS_EXTERNAL 0x0002 -#define IMAGE_SYM_CLASS_STATIC 0x0003 -#define IMAGE_SYM_CLASS_REGISTER 0x0004 -#define IMAGE_SYM_CLASS_EXTERNAL_DEF 0x0005 -#define IMAGE_SYM_CLASS_LABEL 0x0006 -#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 0x0007 -#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 0x0008 -#define IMAGE_SYM_CLASS_ARGUMENT 0x0009 -#define IMAGE_SYM_CLASS_STRUCT_TAG 0x000A -#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 0x000B -#define IMAGE_SYM_CLASS_UNION_TAG 0x000C -#define IMAGE_SYM_CLASS_TYPE_DEFINITION 0x000D -#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 0x000E -#define IMAGE_SYM_CLASS_ENUM_TAG 0x000F -#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 0x0010 -#define IMAGE_SYM_CLASS_REGISTER_PARAM 0x0011 -#define IMAGE_SYM_CLASS_BIT_FIELD 0x0012 - -#define IMAGE_SYM_CLASS_FAR_EXTERNAL 0x0044 // - -#define IMAGE_SYM_CLASS_BLOCK 0x0064 -#define IMAGE_SYM_CLASS_FUNCTION 0x0065 -#define IMAGE_SYM_CLASS_END_OF_STRUCT 0x0066 -#define IMAGE_SYM_CLASS_FILE 0x0067 -// new -#define IMAGE_SYM_CLASS_SECTION 0x0068 -#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 0x0069 - -#define IMAGE_SYM_CLASS_CLR_TOKEN 0x006B - -// type packing constants - -#define N_BTMASK 0x000F -#define N_TMASK 0x0030 -#define N_TMASK1 0x00C0 -#define N_TMASK2 0x00F0 -#define N_BTSHFT 4 -#define N_TSHIFT 2 -// MACROS - -// Basic Type of x -#define BTYPE(x) ((x) & N_BTMASK) - -// Is x a pointer? -#ifndef ISPTR -#define ISPTR(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT)) -#endif - -// Is x a function? -#ifndef ISFCN -#define ISFCN(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT)) -#endif - -// Is x an array? - -#ifndef ISARY -#define ISARY(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT)) -#endif - -// Is x a structure, union, or enumeration TAG? -#ifndef ISTAG -#define ISTAG(x) ((x)==IMAGE_SYM_CLASS_STRUCT_TAG || (x)==IMAGE_SYM_CLASS_UNION_TAG || (x)==IMAGE_SYM_CLASS_ENUM_TAG) -#endif - -#ifndef INCREF -#define INCREF(x) ((((x)&~N_BTMASK)<>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK)) -#endif - -#include - -typedef struct IMAGE_AUX_SYMBOL_TOKEN_DEF { - BYTE bAuxType; // IMAGE_AUX_SYMBOL_TYPE - BYTE bReserved; // Must be 0 - DWORD SymbolTableIndex; - BYTE rgbReserved[12]; // Must be 0 -} IMAGE_AUX_SYMBOL_TOKEN_DEF; - -typedef IMAGE_AUX_SYMBOL_TOKEN_DEF UNALIGNED *PIMAGE_AUX_SYMBOL_TOKEN_DEF; - -#include - -// -// Auxiliary entry format. -// - -typedef union _IMAGE_AUX_SYMBOL { - struct { - DWORD TagIndex; // struct, union, or enum tag index - union { - struct { - WORD Linenumber; // declaration line number - WORD Size; // size of struct, union, or enum - } LnSz; - DWORD TotalSize; - } Misc; - union { - struct { // if ISFCN, tag, or .bb - DWORD PointerToLinenumber; - DWORD PointerToNextFunction; - } Function; - struct { // if ISARY, up to 4 dimen. - WORD Dimension[4]; - } Array; - } FcnAry; - WORD TvIndex; // tv index - } Sym; - struct { - BYTE Name[IMAGE_SIZEOF_SYMBOL]; - } File; - struct { - DWORD Length; // section length - WORD NumberOfRelocations; // number of relocation entries - WORD NumberOfLinenumbers; // number of line numbers - DWORD CheckSum; // checksum for communal - SHORT Number; // section number to associate with - BYTE Selection; // communal selection type - BYTE bReserved; - SHORT HighNumber; // high bits of the section number - } Section; - IMAGE_AUX_SYMBOL_TOKEN_DEF TokenDef; - struct { - DWORD crc; - BYTE rgbReserved[14]; - } CRC; -} IMAGE_AUX_SYMBOL; -typedef IMAGE_AUX_SYMBOL UNALIGNED *PIMAGE_AUX_SYMBOL; - -typedef union _IMAGE_AUX_SYMBOL_EX { - struct { - DWORD WeakDefaultSymIndex; // the weak extern default symbol index - DWORD WeakSearchType; - BYTE rgbReserved[12]; - } Sym; - struct { - BYTE Name[sizeof(IMAGE_SYMBOL_EX)]; - } File; - struct { - DWORD Length; // section length - WORD NumberOfRelocations; // number of relocation entries - WORD NumberOfLinenumbers; // number of line numbers - DWORD CheckSum; // checksum for communal - SHORT Number; // section number to associate with - BYTE Selection; // communal selection type - BYTE bReserved; - SHORT HighNumber; // high bits of the section number - BYTE rgbReserved[2]; - } Section; - struct{ - IMAGE_AUX_SYMBOL_TOKEN_DEF TokenDef; - BYTE rgbReserved[2]; - } DUMMYSTRUCTNAME; - struct { - DWORD crc; - BYTE rgbReserved[16]; - } CRC; -} IMAGE_AUX_SYMBOL_EX; -typedef IMAGE_AUX_SYMBOL_EX UNALIGNED *PIMAGE_AUX_SYMBOL_EX; - -typedef enum IMAGE_AUX_SYMBOL_TYPE { - IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1, -} IMAGE_AUX_SYMBOL_TYPE; - - -// -// Communal selection types. -// - -#define IMAGE_COMDAT_SELECT_NODUPLICATES 1 -#define IMAGE_COMDAT_SELECT_ANY 2 -#define IMAGE_COMDAT_SELECT_SAME_SIZE 3 -#define IMAGE_COMDAT_SELECT_EXACT_MATCH 4 -#define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5 -#define IMAGE_COMDAT_SELECT_LARGEST 6 -#define IMAGE_COMDAT_SELECT_NEWEST 7 - -#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1 -#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 -#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 -#define IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY 4 - -// -// Relocation format. -// - -typedef struct _IMAGE_RELOCATION { - union { - DWORD VirtualAddress; - DWORD RelocCount; // Set to the real count when IMAGE_SCN_LNK_NRELOC_OVFL is set - } DUMMYUNIONNAME; - DWORD SymbolTableIndex; - WORD Type; -} IMAGE_RELOCATION; -typedef IMAGE_RELOCATION UNALIGNED *PIMAGE_RELOCATION; - -// -// I386 relocation types. -// -#define IMAGE_REL_I386_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary -#define IMAGE_REL_I386_DIR16 0x0001 // Direct 16-bit reference to the symbols virtual address -#define IMAGE_REL_I386_REL16 0x0002 // PC-relative 16-bit reference to the symbols virtual address -#define IMAGE_REL_I386_DIR32 0x0006 // Direct 32-bit reference to the symbols virtual address -#define IMAGE_REL_I386_DIR32NB 0x0007 // Direct 32-bit reference to the symbols virtual address, base not included -#define IMAGE_REL_I386_SEG12 0x0009 // Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address -#define IMAGE_REL_I386_SECTION 0x000A -#define IMAGE_REL_I386_SECREL 0x000B -#define IMAGE_REL_I386_TOKEN 0x000C // clr token -#define IMAGE_REL_I386_SECREL7 0x000D // 7 bit offset from base of section containing target -#define IMAGE_REL_I386_REL32 0x0014 // PC-relative 32-bit reference to the symbols virtual address - -// -// MIPS relocation types. -// -#define IMAGE_REL_MIPS_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary -#define IMAGE_REL_MIPS_REFHALF 0x0001 -#define IMAGE_REL_MIPS_REFWORD 0x0002 -#define IMAGE_REL_MIPS_JMPADDR 0x0003 -#define IMAGE_REL_MIPS_REFHI 0x0004 -#define IMAGE_REL_MIPS_REFLO 0x0005 -#define IMAGE_REL_MIPS_GPREL 0x0006 -#define IMAGE_REL_MIPS_LITERAL 0x0007 -#define IMAGE_REL_MIPS_SECTION 0x000A -#define IMAGE_REL_MIPS_SECREL 0x000B -#define IMAGE_REL_MIPS_SECRELLO 0x000C // Low 16-bit section relative referemce (used for >32k TLS) -#define IMAGE_REL_MIPS_SECRELHI 0x000D // High 16-bit section relative reference (used for >32k TLS) -#define IMAGE_REL_MIPS_TOKEN 0x000E // clr token -#define IMAGE_REL_MIPS_JMPADDR16 0x0010 -#define IMAGE_REL_MIPS_REFWORDNB 0x0022 -#define IMAGE_REL_MIPS_PAIR 0x0025 - -// -// Alpha Relocation types. -// -#define IMAGE_REL_ALPHA_ABSOLUTE 0x0000 -#define IMAGE_REL_ALPHA_REFLONG 0x0001 -#define IMAGE_REL_ALPHA_REFQUAD 0x0002 -#define IMAGE_REL_ALPHA_GPREL32 0x0003 -#define IMAGE_REL_ALPHA_LITERAL 0x0004 -#define IMAGE_REL_ALPHA_LITUSE 0x0005 -#define IMAGE_REL_ALPHA_GPDISP 0x0006 -#define IMAGE_REL_ALPHA_BRADDR 0x0007 -#define IMAGE_REL_ALPHA_HINT 0x0008 -#define IMAGE_REL_ALPHA_INLINE_REFLONG 0x0009 -#define IMAGE_REL_ALPHA_REFHI 0x000A -#define IMAGE_REL_ALPHA_REFLO 0x000B -#define IMAGE_REL_ALPHA_PAIR 0x000C -#define IMAGE_REL_ALPHA_MATCH 0x000D -#define IMAGE_REL_ALPHA_SECTION 0x000E -#define IMAGE_REL_ALPHA_SECREL 0x000F -#define IMAGE_REL_ALPHA_REFLONGNB 0x0010 -#define IMAGE_REL_ALPHA_SECRELLO 0x0011 // Low 16-bit section relative reference -#define IMAGE_REL_ALPHA_SECRELHI 0x0012 // High 16-bit section relative reference -#define IMAGE_REL_ALPHA_REFQ3 0x0013 // High 16 bits of 48 bit reference -#define IMAGE_REL_ALPHA_REFQ2 0x0014 // Middle 16 bits of 48 bit reference -#define IMAGE_REL_ALPHA_REFQ1 0x0015 // Low 16 bits of 48 bit reference -#define IMAGE_REL_ALPHA_GPRELLO 0x0016 // Low 16-bit GP relative reference -#define IMAGE_REL_ALPHA_GPRELHI 0x0017 // High 16-bit GP relative reference - -// -// IBM PowerPC relocation types. -// -#define IMAGE_REL_PPC_ABSOLUTE 0x0000 // NOP -#define IMAGE_REL_PPC_ADDR64 0x0001 // 64-bit address -#define IMAGE_REL_PPC_ADDR32 0x0002 // 32-bit address -#define IMAGE_REL_PPC_ADDR24 0x0003 // 26-bit address, shifted left 2 (branch absolute) -#define IMAGE_REL_PPC_ADDR16 0x0004 // 16-bit address -#define IMAGE_REL_PPC_ADDR14 0x0005 // 16-bit address, shifted left 2 (load doubleword) -#define IMAGE_REL_PPC_REL24 0x0006 // 26-bit PC-relative offset, shifted left 2 (branch relative) -#define IMAGE_REL_PPC_REL14 0x0007 // 16-bit PC-relative offset, shifted left 2 (br cond relative) -#define IMAGE_REL_PPC_TOCREL16 0x0008 // 16-bit offset from TOC base -#define IMAGE_REL_PPC_TOCREL14 0x0009 // 16-bit offset from TOC base, shifted left 2 (load doubleword) - -#define IMAGE_REL_PPC_ADDR32NB 0x000A // 32-bit addr w/o image base -#define IMAGE_REL_PPC_SECREL 0x000B // va of containing section (as in an image sectionhdr) -#define IMAGE_REL_PPC_SECTION 0x000C // sectionheader number -#define IMAGE_REL_PPC_IFGLUE 0x000D // substitute TOC restore instruction iff symbol is glue code -#define IMAGE_REL_PPC_IMGLUE 0x000E // symbol is glue code; virtual address is TOC restore instruction -#define IMAGE_REL_PPC_SECREL16 0x000F // va of containing section (limited to 16 bits) -#define IMAGE_REL_PPC_REFHI 0x0010 -#define IMAGE_REL_PPC_REFLO 0x0011 -#define IMAGE_REL_PPC_PAIR 0x0012 -#define IMAGE_REL_PPC_SECRELLO 0x0013 // Low 16-bit section relative reference (used for >32k TLS) -#define IMAGE_REL_PPC_SECRELHI 0x0014 // High 16-bit section relative reference (used for >32k TLS) -#define IMAGE_REL_PPC_GPREL 0x0015 -#define IMAGE_REL_PPC_TOKEN 0x0016 // clr token - -#define IMAGE_REL_PPC_TYPEMASK 0x00FF // mask to isolate above values in IMAGE_RELOCATION.Type - -// Flag bits in IMAGE_RELOCATION.TYPE - -#define IMAGE_REL_PPC_NEG 0x0100 // subtract reloc value rather than adding it -#define IMAGE_REL_PPC_BRTAKEN 0x0200 // fix branch prediction bit to predict branch taken -#define IMAGE_REL_PPC_BRNTAKEN 0x0400 // fix branch prediction bit to predict branch not taken -#define IMAGE_REL_PPC_TOCDEFN 0x0800 // toc slot defined in file (or, data in toc) - -// -// Hitachi SH3 relocation types. -// -#define IMAGE_REL_SH3_ABSOLUTE 0x0000 // No relocation -#define IMAGE_REL_SH3_DIRECT16 0x0001 // 16 bit direct -#define IMAGE_REL_SH3_DIRECT32 0x0002 // 32 bit direct -#define IMAGE_REL_SH3_DIRECT8 0x0003 // 8 bit direct, -128..255 -#define IMAGE_REL_SH3_DIRECT8_WORD 0x0004 // 8 bit direct .W (0 ext.) -#define IMAGE_REL_SH3_DIRECT8_LONG 0x0005 // 8 bit direct .L (0 ext.) -#define IMAGE_REL_SH3_DIRECT4 0x0006 // 4 bit direct (0 ext.) -#define IMAGE_REL_SH3_DIRECT4_WORD 0x0007 // 4 bit direct .W (0 ext.) -#define IMAGE_REL_SH3_DIRECT4_LONG 0x0008 // 4 bit direct .L (0 ext.) -#define IMAGE_REL_SH3_PCREL8_WORD 0x0009 // 8 bit PC relative .W -#define IMAGE_REL_SH3_PCREL8_LONG 0x000A // 8 bit PC relative .L -#define IMAGE_REL_SH3_PCREL12_WORD 0x000B // 12 LSB PC relative .W -#define IMAGE_REL_SH3_STARTOF_SECTION 0x000C // Start of EXE section -#define IMAGE_REL_SH3_SIZEOF_SECTION 0x000D // Size of EXE section -#define IMAGE_REL_SH3_SECTION 0x000E // Section table index -#define IMAGE_REL_SH3_SECREL 0x000F // Offset within section -#define IMAGE_REL_SH3_DIRECT32_NB 0x0010 // 32 bit direct not based -#define IMAGE_REL_SH3_GPREL4_LONG 0x0011 // GP-relative addressing -#define IMAGE_REL_SH3_TOKEN 0x0012 // clr token -#define IMAGE_REL_SHM_PCRELPT 0x0013 // Offset from current - // instruction in longwords - // if not NOMODE, insert the - // inverse of the low bit at - // bit 32 to select PTA/PTB -#define IMAGE_REL_SHM_REFLO 0x0014 // Low bits of 32-bit address -#define IMAGE_REL_SHM_REFHALF 0x0015 // High bits of 32-bit address -#define IMAGE_REL_SHM_RELLO 0x0016 // Low bits of relative reference -#define IMAGE_REL_SHM_RELHALF 0x0017 // High bits of relative reference -#define IMAGE_REL_SHM_PAIR 0x0018 // offset operand for relocation - -#define IMAGE_REL_SH_NOMODE 0x8000 // relocation ignores section mode - - -#define IMAGE_REL_ARM_ABSOLUTE 0x0000 // No relocation required -#define IMAGE_REL_ARM_ADDR32 0x0001 // 32 bit address -#define IMAGE_REL_ARM_ADDR32NB 0x0002 // 32 bit address w/o image base -#define IMAGE_REL_ARM_BRANCH24 0x0003 // 24 bit offset << 2 & sign ext. -#define IMAGE_REL_ARM_BRANCH11 0x0004 // Thumb: 2 11 bit offsets -#define IMAGE_REL_ARM_TOKEN 0x0005 // clr token -#define IMAGE_REL_ARM_GPREL12 0x0006 // GP-relative addressing (ARM) -#define IMAGE_REL_ARM_GPREL7 0x0007 // GP-relative addressing (Thumb) -#define IMAGE_REL_ARM_BLX24 0x0008 -#define IMAGE_REL_ARM_BLX11 0x0009 -#define IMAGE_REL_ARM_SECTION 0x000E // Section table index -#define IMAGE_REL_ARM_SECREL 0x000F // Offset within section -#define IMAGE_REL_ARM_MOV32A 0x0010 // ARM: MOVW/MOVT -#define IMAGE_REL_ARM_MOV32 0x0010 // ARM: MOVW/MOVT (deprecated) -#define IMAGE_REL_ARM_MOV32T 0x0011 // Thumb: MOVW/MOVT -#define IMAGE_REL_THUMB_MOV32 0x0011 // Thumb: MOVW/MOVT (deprecated) -#define IMAGE_REL_ARM_BRANCH20T 0x0012 // Thumb: 32-bit conditional B -#define IMAGE_REL_THUMB_BRANCH20 0x0012 // Thumb: 32-bit conditional B (deprecated) -#define IMAGE_REL_ARM_BRANCH24T 0x0014 // Thumb: 32-bit B or BL -#define IMAGE_REL_THUMB_BRANCH24 0x0014 // Thumb: 32-bit B or BL (deprecated) -#define IMAGE_REL_ARM_BLX23T 0x0015 // Thumb: BLX immediate -#define IMAGE_REL_THUMB_BLX23 0x0015 // Thumb: BLX immediate (deprecated) - -#define IMAGE_REL_AM_ABSOLUTE 0x0000 -#define IMAGE_REL_AM_ADDR32 0x0001 -#define IMAGE_REL_AM_ADDR32NB 0x0002 -#define IMAGE_REL_AM_CALL32 0x0003 -#define IMAGE_REL_AM_FUNCINFO 0x0004 -#define IMAGE_REL_AM_REL32_1 0x0005 -#define IMAGE_REL_AM_REL32_2 0x0006 -#define IMAGE_REL_AM_SECREL 0x0007 -#define IMAGE_REL_AM_SECTION 0x0008 -#define IMAGE_REL_AM_TOKEN 0x0009 - -// -// ARM64 relocations types. -// - -#define IMAGE_REL_ARM64_ABSOLUTE 0x0000 // No relocation required -#define IMAGE_REL_ARM64_ADDR32 0x0001 // 32 bit address. Review! do we need it? -#define IMAGE_REL_ARM64_ADDR32NB 0x0002 // 32 bit address w/o image base (RVA: for Data/PData/XData) -#define IMAGE_REL_ARM64_BRANCH26 0x0003 // 26 bit offset << 2 & sign ext. for B & BL -#define IMAGE_REL_ARM64_PAGEBASE_REL21 0x0004 // ADRP -#define IMAGE_REL_ARM64_REL21 0x0005 // ADR -#define IMAGE_REL_ARM64_PAGEOFFSET_12A 0x0006 // ADD/ADDS (immediate) with zero shift, for page offset -#define IMAGE_REL_ARM64_PAGEOFFSET_12L 0x0007 // LDR (indexed, unsigned immediate), for page offset -#define IMAGE_REL_ARM64_SECREL 0x0008 // Offset within section -#define IMAGE_REL_ARM64_SECREL_LOW12A 0x0009 // ADD/ADDS (immediate) with zero shift, for bit 0:11 of section offset -#define IMAGE_REL_ARM64_SECREL_HIGH12A 0x000A // ADD/ADDS (immediate) with zero shift, for bit 12:23 of section offset -#define IMAGE_REL_ARM64_SECREL_LOW12L 0x000B // LDR (indexed, unsigned immediate), for bit 0:11 of section offset -#define IMAGE_REL_ARM64_TOKEN 0x000C -#define IMAGE_REL_ARM64_SECTION 0x000D // Section table index -#define IMAGE_REL_ARM64_ADDR64 0x000E // 64 bit address -#define IMAGE_REL_ARM64_BRANCH19 0x000F // 19 bit offset << 2 & sign ext. for conditional B - -// -// x64 relocations -// -#define IMAGE_REL_AMD64_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary -#define IMAGE_REL_AMD64_ADDR64 0x0001 // 64-bit address (VA). -#define IMAGE_REL_AMD64_ADDR32 0x0002 // 32-bit address (VA). -#define IMAGE_REL_AMD64_ADDR32NB 0x0003 // 32-bit address w/o image base (RVA). -#define IMAGE_REL_AMD64_REL32 0x0004 // 32-bit relative address from byte following reloc -#define IMAGE_REL_AMD64_REL32_1 0x0005 // 32-bit relative address from byte distance 1 from reloc -#define IMAGE_REL_AMD64_REL32_2 0x0006 // 32-bit relative address from byte distance 2 from reloc -#define IMAGE_REL_AMD64_REL32_3 0x0007 // 32-bit relative address from byte distance 3 from reloc -#define IMAGE_REL_AMD64_REL32_4 0x0008 // 32-bit relative address from byte distance 4 from reloc -#define IMAGE_REL_AMD64_REL32_5 0x0009 // 32-bit relative address from byte distance 5 from reloc -#define IMAGE_REL_AMD64_SECTION 0x000A // Section index -#define IMAGE_REL_AMD64_SECREL 0x000B // 32 bit offset from base of section containing target -#define IMAGE_REL_AMD64_SECREL7 0x000C // 7 bit unsigned offset from base of section containing target -#define IMAGE_REL_AMD64_TOKEN 0x000D // 32 bit metadata token -#define IMAGE_REL_AMD64_SREL32 0x000E // 32 bit signed span-dependent value emitted into object -#define IMAGE_REL_AMD64_PAIR 0x000F -#define IMAGE_REL_AMD64_SSPAN32 0x0010 // 32 bit signed span-dependent value applied at link time -#define IMAGE_REL_AMD64_EHANDLER 0x0011 -#define IMAGE_REL_AMD64_IMPORT_BR 0x0012 // Indirect branch to an import -#define IMAGE_REL_AMD64_IMPORT_CALL 0x0013 // Indirect call to an import -#define IMAGE_REL_AMD64_CFG_BR 0x0014 // Indirect branch to a CFG check -#define IMAGE_REL_AMD64_CFG_BR_REX 0x0015 // Indirect branch to a CFG check, with REX.W prefix -#define IMAGE_REL_AMD64_CFG_CALL 0x0016 // Indirect call to a CFG check -#define IMAGE_REL_AMD64_INDIR_BR 0x0017 // Indirect branch to a target in RAX (no CFG) -#define IMAGE_REL_AMD64_INDIR_BR_REX 0x0018 // Indirect branch to a target in RAX, with REX.W prefix (no CFG) -#define IMAGE_REL_AMD64_INDIR_CALL 0x0019 // Indirect call to a target in RAX (no CFG) -#define IMAGE_REL_AMD64_INDIR_BR_SWITCHTABLE_FIRST 0x0020 // Indirect branch for a switch table using Reg 0 (RAX) -#define IMAGE_REL_AMD64_INDIR_BR_SWITCHTABLE_LAST 0x002F // Indirect branch for a switch table using Reg 15 (R15) - -// -// IA64 relocation types. -// -#define IMAGE_REL_IA64_ABSOLUTE 0x0000 -#define IMAGE_REL_IA64_IMM14 0x0001 -#define IMAGE_REL_IA64_IMM22 0x0002 -#define IMAGE_REL_IA64_IMM64 0x0003 -#define IMAGE_REL_IA64_DIR32 0x0004 -#define IMAGE_REL_IA64_DIR64 0x0005 -#define IMAGE_REL_IA64_PCREL21B 0x0006 -#define IMAGE_REL_IA64_PCREL21M 0x0007 -#define IMAGE_REL_IA64_PCREL21F 0x0008 -#define IMAGE_REL_IA64_GPREL22 0x0009 -#define IMAGE_REL_IA64_LTOFF22 0x000A -#define IMAGE_REL_IA64_SECTION 0x000B -#define IMAGE_REL_IA64_SECREL22 0x000C -#define IMAGE_REL_IA64_SECREL64I 0x000D -#define IMAGE_REL_IA64_SECREL32 0x000E -// -#define IMAGE_REL_IA64_DIR32NB 0x0010 -#define IMAGE_REL_IA64_SREL14 0x0011 -#define IMAGE_REL_IA64_SREL22 0x0012 -#define IMAGE_REL_IA64_SREL32 0x0013 -#define IMAGE_REL_IA64_UREL32 0x0014 -#define IMAGE_REL_IA64_PCREL60X 0x0015 // This is always a BRL and never converted -#define IMAGE_REL_IA64_PCREL60B 0x0016 // If possible, convert to MBB bundle with NOP.B in slot 1 -#define IMAGE_REL_IA64_PCREL60F 0x0017 // If possible, convert to MFB bundle with NOP.F in slot 1 -#define IMAGE_REL_IA64_PCREL60I 0x0018 // If possible, convert to MIB bundle with NOP.I in slot 1 -#define IMAGE_REL_IA64_PCREL60M 0x0019 // If possible, convert to MMB bundle with NOP.M in slot 1 -#define IMAGE_REL_IA64_IMMGPREL64 0x001A -#define IMAGE_REL_IA64_TOKEN 0x001B // clr token -#define IMAGE_REL_IA64_GPREL32 0x001C -#define IMAGE_REL_IA64_ADDEND 0x001F - -// -// CEF relocation types. -// -#define IMAGE_REL_CEF_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary -#define IMAGE_REL_CEF_ADDR32 0x0001 // 32-bit address (VA). -#define IMAGE_REL_CEF_ADDR64 0x0002 // 64-bit address (VA). -#define IMAGE_REL_CEF_ADDR32NB 0x0003 // 32-bit address w/o image base (RVA). -#define IMAGE_REL_CEF_SECTION 0x0004 // Section index -#define IMAGE_REL_CEF_SECREL 0x0005 // 32 bit offset from base of section containing target -#define IMAGE_REL_CEF_TOKEN 0x0006 // 32 bit metadata token - -// -// clr relocation types. -// -#define IMAGE_REL_CEE_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary -#define IMAGE_REL_CEE_ADDR32 0x0001 // 32-bit address (VA). -#define IMAGE_REL_CEE_ADDR64 0x0002 // 64-bit address (VA). -#define IMAGE_REL_CEE_ADDR32NB 0x0003 // 32-bit address w/o image base (RVA). -#define IMAGE_REL_CEE_SECTION 0x0004 // Section index -#define IMAGE_REL_CEE_SECREL 0x0005 // 32 bit offset from base of section containing target -#define IMAGE_REL_CEE_TOKEN 0x0006 // 32 bit metadata token - - -#define IMAGE_REL_M32R_ABSOLUTE 0x0000 // No relocation required -#define IMAGE_REL_M32R_ADDR32 0x0001 // 32 bit address -#define IMAGE_REL_M32R_ADDR32NB 0x0002 // 32 bit address w/o image base -#define IMAGE_REL_M32R_ADDR24 0x0003 // 24 bit address -#define IMAGE_REL_M32R_GPREL16 0x0004 // GP relative addressing -#define IMAGE_REL_M32R_PCREL24 0x0005 // 24 bit offset << 2 & sign ext. -#define IMAGE_REL_M32R_PCREL16 0x0006 // 16 bit offset << 2 & sign ext. -#define IMAGE_REL_M32R_PCREL8 0x0007 // 8 bit offset << 2 & sign ext. -#define IMAGE_REL_M32R_REFHALF 0x0008 // 16 MSBs -#define IMAGE_REL_M32R_REFHI 0x0009 // 16 MSBs; adj for LSB sign ext. -#define IMAGE_REL_M32R_REFLO 0x000A // 16 LSBs -#define IMAGE_REL_M32R_PAIR 0x000B // Link HI and LO -#define IMAGE_REL_M32R_SECTION 0x000C // Section table index -#define IMAGE_REL_M32R_SECREL32 0x000D // 32 bit section relative reference -#define IMAGE_REL_M32R_TOKEN 0x000E // clr token - -#define IMAGE_REL_EBC_ABSOLUTE 0x0000 // No relocation required -#define IMAGE_REL_EBC_ADDR32NB 0x0001 // 32 bit address w/o image base -#define IMAGE_REL_EBC_REL32 0x0002 // 32-bit relative address from byte following reloc -#define IMAGE_REL_EBC_SECTION 0x0003 // Section table index -#define IMAGE_REL_EBC_SECREL 0x0004 // Offset within section - -#define EXT_IMM64(Value, Address, Size, InstPos, ValPos) /* Intel-IA64-Filler */ \ - Value |= (((ULONGLONG)((*(Address) >> InstPos) & (((ULONGLONG)1 << Size) - 1))) << ValPos) // Intel-IA64-Filler - -#define INS_IMM64(Value, Address, Size, InstPos, ValPos) /* Intel-IA64-Filler */\ - *(PDWORD)Address = (*(PDWORD)Address & ~(((1 << Size) - 1) << InstPos)) | /* Intel-IA64-Filler */\ - ((DWORD)((((ULONGLONG)Value >> ValPos) & (((ULONGLONG)1 << Size) - 1))) << InstPos) // Intel-IA64-Filler - -#define EMARCH_ENC_I17_IMM7B_INST_WORD_X 3 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM7B_SIZE_X 7 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X 4 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM7B_VAL_POS_X 0 // Intel-IA64-Filler - -#define EMARCH_ENC_I17_IMM9D_INST_WORD_X 3 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM9D_SIZE_X 9 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X 18 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM9D_VAL_POS_X 7 // Intel-IA64-Filler - -#define EMARCH_ENC_I17_IMM5C_INST_WORD_X 3 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM5C_SIZE_X 5 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X 13 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM5C_VAL_POS_X 16 // Intel-IA64-Filler - -#define EMARCH_ENC_I17_IC_INST_WORD_X 3 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IC_SIZE_X 1 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IC_INST_WORD_POS_X 12 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IC_VAL_POS_X 21 // Intel-IA64-Filler - -#define EMARCH_ENC_I17_IMM41a_INST_WORD_X 1 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM41a_SIZE_X 10 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X 14 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM41a_VAL_POS_X 22 // Intel-IA64-Filler - -#define EMARCH_ENC_I17_IMM41b_INST_WORD_X 1 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM41b_SIZE_X 8 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X 24 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM41b_VAL_POS_X 32 // Intel-IA64-Filler - -#define EMARCH_ENC_I17_IMM41c_INST_WORD_X 2 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM41c_SIZE_X 23 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X 0 // Intel-IA64-Filler -#define EMARCH_ENC_I17_IMM41c_VAL_POS_X 40 // Intel-IA64-Filler - -#define EMARCH_ENC_I17_SIGN_INST_WORD_X 3 // Intel-IA64-Filler -#define EMARCH_ENC_I17_SIGN_SIZE_X 1 // Intel-IA64-Filler -#define EMARCH_ENC_I17_SIGN_INST_WORD_POS_X 27 // Intel-IA64-Filler -#define EMARCH_ENC_I17_SIGN_VAL_POS_X 63 // Intel-IA64-Filler - -#define X3_OPCODE_INST_WORD_X 3 // Intel-IA64-Filler -#define X3_OPCODE_SIZE_X 4 // Intel-IA64-Filler -#define X3_OPCODE_INST_WORD_POS_X 28 // Intel-IA64-Filler -#define X3_OPCODE_SIGN_VAL_POS_X 0 // Intel-IA64-Filler - -#define X3_I_INST_WORD_X 3 // Intel-IA64-Filler -#define X3_I_SIZE_X 1 // Intel-IA64-Filler -#define X3_I_INST_WORD_POS_X 27 // Intel-IA64-Filler -#define X3_I_SIGN_VAL_POS_X 59 // Intel-IA64-Filler - -#define X3_D_WH_INST_WORD_X 3 // Intel-IA64-Filler -#define X3_D_WH_SIZE_X 3 // Intel-IA64-Filler -#define X3_D_WH_INST_WORD_POS_X 24 // Intel-IA64-Filler -#define X3_D_WH_SIGN_VAL_POS_X 0 // Intel-IA64-Filler - -#define X3_IMM20_INST_WORD_X 3 // Intel-IA64-Filler -#define X3_IMM20_SIZE_X 20 // Intel-IA64-Filler -#define X3_IMM20_INST_WORD_POS_X 4 // Intel-IA64-Filler -#define X3_IMM20_SIGN_VAL_POS_X 0 // Intel-IA64-Filler - -#define X3_IMM39_1_INST_WORD_X 2 // Intel-IA64-Filler -#define X3_IMM39_1_SIZE_X 23 // Intel-IA64-Filler -#define X3_IMM39_1_INST_WORD_POS_X 0 // Intel-IA64-Filler -#define X3_IMM39_1_SIGN_VAL_POS_X 36 // Intel-IA64-Filler - -#define X3_IMM39_2_INST_WORD_X 1 // Intel-IA64-Filler -#define X3_IMM39_2_SIZE_X 16 // Intel-IA64-Filler -#define X3_IMM39_2_INST_WORD_POS_X 16 // Intel-IA64-Filler -#define X3_IMM39_2_SIGN_VAL_POS_X 20 // Intel-IA64-Filler - -#define X3_P_INST_WORD_X 3 // Intel-IA64-Filler -#define X3_P_SIZE_X 4 // Intel-IA64-Filler -#define X3_P_INST_WORD_POS_X 0 // Intel-IA64-Filler -#define X3_P_SIGN_VAL_POS_X 0 // Intel-IA64-Filler - -#define X3_TMPLT_INST_WORD_X 0 // Intel-IA64-Filler -#define X3_TMPLT_SIZE_X 4 // Intel-IA64-Filler -#define X3_TMPLT_INST_WORD_POS_X 0 // Intel-IA64-Filler -#define X3_TMPLT_SIGN_VAL_POS_X 0 // Intel-IA64-Filler - -#define X3_BTYPE_QP_INST_WORD_X 2 // Intel-IA64-Filler -#define X3_BTYPE_QP_SIZE_X 9 // Intel-IA64-Filler -#define X3_BTYPE_QP_INST_WORD_POS_X 23 // Intel-IA64-Filler -#define X3_BTYPE_QP_INST_VAL_POS_X 0 // Intel-IA64-Filler - -#define X3_EMPTY_INST_WORD_X 1 // Intel-IA64-Filler -#define X3_EMPTY_SIZE_X 2 // Intel-IA64-Filler -#define X3_EMPTY_INST_WORD_POS_X 14 // Intel-IA64-Filler -#define X3_EMPTY_INST_VAL_POS_X 0 // Intel-IA64-Filler - -// -// Line number format. -// - -typedef struct _IMAGE_LINENUMBER { - union { - DWORD SymbolTableIndex; // Symbol table index of function name if Linenumber is 0. - DWORD VirtualAddress; // Virtual address of line number. - } Type; - WORD Linenumber; // Line number. -} IMAGE_LINENUMBER; -typedef IMAGE_LINENUMBER UNALIGNED *PIMAGE_LINENUMBER; - -#ifndef _MAC -#include "poppack.h" // Back to 4 byte packing -#endif - -// -// Based relocation format. -// - -//@[comment("MVI_tracked")] -typedef struct _IMAGE_BASE_RELOCATION { - DWORD VirtualAddress; - DWORD SizeOfBlock; -// WORD TypeOffset[1]; -} IMAGE_BASE_RELOCATION; -typedef IMAGE_BASE_RELOCATION UNALIGNED * PIMAGE_BASE_RELOCATION; - -// -// Based relocation types. -// - -#define IMAGE_REL_BASED_ABSOLUTE 0 -#define IMAGE_REL_BASED_HIGH 1 -#define IMAGE_REL_BASED_LOW 2 -#define IMAGE_REL_BASED_HIGHLOW 3 -#define IMAGE_REL_BASED_HIGHADJ 4 -#define IMAGE_REL_BASED_MACHINE_SPECIFIC_5 5 -#define IMAGE_REL_BASED_RESERVED 6 -#define IMAGE_REL_BASED_MACHINE_SPECIFIC_7 7 -#define IMAGE_REL_BASED_MACHINE_SPECIFIC_8 8 -#define IMAGE_REL_BASED_MACHINE_SPECIFIC_9 9 -#define IMAGE_REL_BASED_DIR64 10 - -// -// Platform-specific based relocation types. -// - -#define IMAGE_REL_BASED_IA64_IMM64 9 - -#define IMAGE_REL_BASED_MIPS_JMPADDR 5 -#define IMAGE_REL_BASED_MIPS_JMPADDR16 9 - -#define IMAGE_REL_BASED_ARM_MOV32 5 -#define IMAGE_REL_BASED_THUMB_MOV32 7 - - -// -// Archive format. -// - -#define IMAGE_ARCHIVE_START_SIZE 8 -#define IMAGE_ARCHIVE_START "!\n" -#define IMAGE_ARCHIVE_END "`\n" -#define IMAGE_ARCHIVE_PAD "\n" -#define IMAGE_ARCHIVE_LINKER_MEMBER "/ " -#define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// " -#define IMAGE_ARCHIVE_HYBRIDMAP_MEMBER "// " - - -typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER { - BYTE Name[16]; // File member name - `/' terminated. - BYTE Date[12]; // File member date - decimal. - BYTE UserID[6]; // File member user id - decimal. - BYTE GroupID[6]; // File member group id - decimal. - BYTE Mode[8]; // File member mode - octal. - BYTE Size[10]; // File member size - decimal. - BYTE EndHeader[2]; // String to end header. -} IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER; - -#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60 - -// -// DLL support. -// - -// -// Export Format -// - -//@[comment("MVI_tracked")] -typedef struct _IMAGE_EXPORT_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Name; - DWORD Base; - DWORD NumberOfFunctions; - DWORD NumberOfNames; - DWORD AddressOfFunctions; // RVA from base of image - DWORD AddressOfNames; // RVA from base of image - DWORD AddressOfNameOrdinals; // RVA from base of image -} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY; - -// -// Import Format -// - -//@[comment("MVI_tracked")] -typedef struct _IMAGE_IMPORT_BY_NAME { - WORD Hint; - CHAR Name[1]; -} IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME; - -#include "pshpack8.h" // Use align 8 for the 64-bit IAT. - -typedef struct _IMAGE_THUNK_DATA64 { - union { - ULONGLONG ForwarderString; // PBYTE - ULONGLONG Function; // PDWORD - ULONGLONG Ordinal; - ULONGLONG AddressOfData; // PIMAGE_IMPORT_BY_NAME - } u1; -} IMAGE_THUNK_DATA64; -typedef IMAGE_THUNK_DATA64 * PIMAGE_THUNK_DATA64; - -#include "poppack.h" // Back to 4 byte packing - -typedef struct _IMAGE_THUNK_DATA32 { - union { - DWORD ForwarderString; // PBYTE - DWORD Function; // PDWORD - DWORD Ordinal; - DWORD AddressOfData; // PIMAGE_IMPORT_BY_NAME - } u1; -} IMAGE_THUNK_DATA32; -typedef IMAGE_THUNK_DATA32 * PIMAGE_THUNK_DATA32; - -#define IMAGE_ORDINAL_FLAG64 0x8000000000000000 -#define IMAGE_ORDINAL_FLAG32 0x80000000 -#define IMAGE_ORDINAL64(Ordinal) (Ordinal & 0xffff) -#define IMAGE_ORDINAL32(Ordinal) (Ordinal & 0xffff) -#define IMAGE_SNAP_BY_ORDINAL64(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG64) != 0) -#define IMAGE_SNAP_BY_ORDINAL32(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG32) != 0) - -// -// Thread Local Storage -// - -typedef VOID -(NTAPI *PIMAGE_TLS_CALLBACK) ( - PVOID DllHandle, - DWORD Reason, - PVOID Reserved - ); - -typedef struct _IMAGE_TLS_DIRECTORY64 { - ULONGLONG StartAddressOfRawData; - ULONGLONG EndAddressOfRawData; - ULONGLONG AddressOfIndex; // PDWORD - ULONGLONG AddressOfCallBacks; // PIMAGE_TLS_CALLBACK *; - DWORD SizeOfZeroFill; - union { - DWORD Characteristics; - struct { - DWORD Reserved0 : 20; - DWORD Alignment : 4; - DWORD Reserved1 : 8; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; - -} IMAGE_TLS_DIRECTORY64; - -typedef IMAGE_TLS_DIRECTORY64 * PIMAGE_TLS_DIRECTORY64; - -typedef struct _IMAGE_TLS_DIRECTORY32 { - DWORD StartAddressOfRawData; - DWORD EndAddressOfRawData; - DWORD AddressOfIndex; // PDWORD - DWORD AddressOfCallBacks; // PIMAGE_TLS_CALLBACK * - DWORD SizeOfZeroFill; - union { - DWORD Characteristics; - struct { - DWORD Reserved0 : 20; - DWORD Alignment : 4; - DWORD Reserved1 : 8; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; - -} IMAGE_TLS_DIRECTORY32; -typedef IMAGE_TLS_DIRECTORY32 * PIMAGE_TLS_DIRECTORY32; - -#ifdef _WIN64 -#define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG64 -#define IMAGE_ORDINAL(Ordinal) IMAGE_ORDINAL64(Ordinal) -typedef IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA; -typedef PIMAGE_THUNK_DATA64 PIMAGE_THUNK_DATA; -#define IMAGE_SNAP_BY_ORDINAL(Ordinal) IMAGE_SNAP_BY_ORDINAL64(Ordinal) -typedef IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY; -typedef PIMAGE_TLS_DIRECTORY64 PIMAGE_TLS_DIRECTORY; -#else -#define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG32 -#define IMAGE_ORDINAL(Ordinal) IMAGE_ORDINAL32(Ordinal) -typedef IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; -typedef PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA; -#define IMAGE_SNAP_BY_ORDINAL(Ordinal) IMAGE_SNAP_BY_ORDINAL32(Ordinal) -typedef IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY; -typedef PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY; -#endif - -////@[comment("MVI_tracked")] -typedef struct _IMAGE_IMPORT_DESCRIPTOR { - union { - DWORD Characteristics; // 0 for terminating null import descriptor - DWORD OriginalFirstThunk; // RVA to original unbound IAT (PIMAGE_THUNK_DATA) - } DUMMYUNIONNAME; - DWORD TimeDateStamp; // 0 if not bound, - // -1 if bound, and real date\time stamp - // in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (new BIND) - // O.W. date/time stamp of DLL bound to (Old BIND) - - DWORD ForwarderChain; // -1 if no forwarders - DWORD Name; - DWORD FirstThunk; // RVA to IAT (if bound this IAT has actual addresses) -} IMAGE_IMPORT_DESCRIPTOR; -typedef IMAGE_IMPORT_DESCRIPTOR UNALIGNED *PIMAGE_IMPORT_DESCRIPTOR; - -// -// New format import descriptors pointed to by DataDirectory[ IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT ] -// - -typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { - DWORD TimeDateStamp; - WORD OffsetModuleName; - WORD NumberOfModuleForwarderRefs; -// Array of zero or more IMAGE_BOUND_FORWARDER_REF follows -} IMAGE_BOUND_IMPORT_DESCRIPTOR, *PIMAGE_BOUND_IMPORT_DESCRIPTOR; - -typedef struct _IMAGE_BOUND_FORWARDER_REF { - DWORD TimeDateStamp; - WORD OffsetModuleName; - WORD Reserved; -} IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF; - -typedef struct _IMAGE_DELAYLOAD_DESCRIPTOR { - union { - DWORD AllAttributes; - struct { - DWORD RvaBased : 1; // Delay load version 2 - DWORD ReservedAttributes : 31; - } DUMMYSTRUCTNAME; - } Attributes; - - DWORD DllNameRVA; // RVA to the name of the target library (NULL-terminate ASCII string) - DWORD ModuleHandleRVA; // RVA to the HMODULE caching location (PHMODULE) - DWORD ImportAddressTableRVA; // RVA to the start of the IAT (PIMAGE_THUNK_DATA) - DWORD ImportNameTableRVA; // RVA to the start of the name table (PIMAGE_THUNK_DATA::AddressOfData) - DWORD BoundImportAddressTableRVA; // RVA to an optional bound IAT - DWORD UnloadInformationTableRVA; // RVA to an optional unload info table - DWORD TimeDateStamp; // 0 if not bound, - // Otherwise, date/time of the target DLL - -} IMAGE_DELAYLOAD_DESCRIPTOR, *PIMAGE_DELAYLOAD_DESCRIPTOR; - -typedef const IMAGE_DELAYLOAD_DESCRIPTOR *PCIMAGE_DELAYLOAD_DESCRIPTOR; - -// -// Resource Format. -// - -// -// Resource directory consists of two counts, following by a variable length -// array of directory entries. The first count is the number of entries at -// beginning of the array that have actual names associated with each entry. -// The entries are in ascending order, case insensitive strings. The second -// count is the number of entries that immediately follow the named entries. -// This second count identifies the number of entries that have 16-bit integer -// Ids as their name. These entries are also sorted in ascending order. -// -// This structure allows fast lookup by either name or number, but for any -// given resource entry only one form of lookup is supported, not both. -// This is consistant with the syntax of the .RC file and the .RES file. -// - -typedef struct _IMAGE_RESOURCE_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - WORD NumberOfNamedEntries; - WORD NumberOfIdEntries; -// IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[]; -} IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY; - -#define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000 -#define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000 -// -// Each directory contains the 32-bit Name of the entry and an offset, -// relative to the beginning of the resource directory of the data associated -// with this directory entry. If the name of the entry is an actual text -// string instead of an integer Id, then the high order bit of the name field -// is set to one and the low order 31-bits are an offset, relative to the -// beginning of the resource directory of the string, which is of type -// IMAGE_RESOURCE_DIRECTORY_STRING. Otherwise the high bit is clear and the -// low-order 16-bits are the integer Id that identify this resource directory -// entry. If the directory entry is yet another resource directory (i.e. a -// subdirectory), then the high order bit of the offset field will be -// set to indicate this. Otherwise the high bit is clear and the offset -// field points to a resource data entry. -// - -////@[comment("MVI_tracked")] -typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { - union { - struct { - DWORD NameOffset:31; - DWORD NameIsString:1; - } DUMMYSTRUCTNAME; - DWORD Name; - WORD Id; - } DUMMYUNIONNAME; - union { - DWORD OffsetToData; - struct { - DWORD OffsetToDirectory:31; - DWORD DataIsDirectory:1; - } DUMMYSTRUCTNAME2; - } DUMMYUNIONNAME2; -} IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY; - -// -// For resource directory entries that have actual string names, the Name -// field of the directory entry points to an object of the following type. -// All of these string objects are stored together after the last resource -// directory entry and before the first resource data object. This minimizes -// the impact of these variable length objects on the alignment of the fixed -// size directory entry objects. -// - -typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING { - WORD Length; - CHAR NameString[ 1 ]; -} IMAGE_RESOURCE_DIRECTORY_STRING, *PIMAGE_RESOURCE_DIRECTORY_STRING; - - -typedef struct _IMAGE_RESOURCE_DIR_STRING_U { - WORD Length; - WCHAR NameString[ 1 ]; -} IMAGE_RESOURCE_DIR_STRING_U, *PIMAGE_RESOURCE_DIR_STRING_U; - - -// -// Each resource data entry describes a leaf node in the resource directory -// tree. It contains an offset, relative to the beginning of the resource -// directory of the data for the resource, a size field that gives the number -// of bytes of data at that offset, a CodePage that should be used when -// decoding code point values within the resource data. Typically for new -// applications the code page would be the unicode code page. -// - -//@[comment("MVI_tracked")] -typedef struct _IMAGE_RESOURCE_DATA_ENTRY { - DWORD OffsetToData; - DWORD Size; - DWORD CodePage; - DWORD Reserved; -} IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY; - -// begin_ntoshvp - -// -// Code Integrity in loadconfig (CI) -// - -typedef struct _IMAGE_LOAD_CONFIG_CODE_INTEGRITY { - WORD Flags; // Flags to indicate if CI information is available, etc. - WORD Catalog; // 0xFFFF means not available - DWORD CatalogOffset; - DWORD Reserved; // Additional bitmask to be defined later -} IMAGE_LOAD_CONFIG_CODE_INTEGRITY, *PIMAGE_LOAD_CONFIG_CODE_INTEGRITY; - -// -// Dynamic value relocation table in loadconfig -// - -typedef struct _IMAGE_DYNAMIC_RELOCATION_TABLE { - DWORD Version; - DWORD Size; -// IMAGE_DYNAMIC_RELOCATION DynamicRelocations[0]; -} IMAGE_DYNAMIC_RELOCATION_TABLE, *PIMAGE_DYNAMIC_RELOCATION_TABLE; - -// -// Dynamic value relocation entries following IMAGE_DYNAMIC_RELOCATION_TABLE -// - -#include "pshpack1.h" - -typedef struct _IMAGE_DYNAMIC_RELOCATION32 { - DWORD Symbol; - DWORD BaseRelocSize; -// IMAGE_BASE_RELOCATION BaseRelocations[0]; -} IMAGE_DYNAMIC_RELOCATION32, *PIMAGE_DYNAMIC_RELOCATION32; - -typedef struct _IMAGE_DYNAMIC_RELOCATION64 { - ULONGLONG Symbol; - DWORD BaseRelocSize; -// IMAGE_BASE_RELOCATION BaseRelocations[0]; -} IMAGE_DYNAMIC_RELOCATION64, *PIMAGE_DYNAMIC_RELOCATION64; - -typedef struct _IMAGE_DYNAMIC_RELOCATION32_V2 { - DWORD HeaderSize; - DWORD FixupInfoSize; - DWORD Symbol; - DWORD SymbolGroup; - DWORD Flags; - // ... variable length header fields - // BYTE FixupInfo[FixupInfoSize] -} IMAGE_DYNAMIC_RELOCATION32_V2, *PIMAGE_DYNAMIC_RELOCATION32_V2; - -typedef struct _IMAGE_DYNAMIC_RELOCATION64_V2 { - DWORD HeaderSize; - DWORD FixupInfoSize; - ULONGLONG Symbol; - DWORD SymbolGroup; - DWORD Flags; - // ... variable length header fields - // BYTE FixupInfo[FixupInfoSize] -} IMAGE_DYNAMIC_RELOCATION64_V2, *PIMAGE_DYNAMIC_RELOCATION64_V2; - -#include "poppack.h" // Back to 4 byte packing - -#ifdef _WIN64 -typedef IMAGE_DYNAMIC_RELOCATION64 IMAGE_DYNAMIC_RELOCATION; -typedef PIMAGE_DYNAMIC_RELOCATION64 PIMAGE_DYNAMIC_RELOCATION; -typedef IMAGE_DYNAMIC_RELOCATION64_V2 IMAGE_DYNAMIC_RELOCATION_V2; -typedef PIMAGE_DYNAMIC_RELOCATION64_V2 PIMAGE_DYNAMIC_RELOCATION_V2; -#else -typedef IMAGE_DYNAMIC_RELOCATION32 IMAGE_DYNAMIC_RELOCATION; -typedef PIMAGE_DYNAMIC_RELOCATION32 PIMAGE_DYNAMIC_RELOCATION; -typedef IMAGE_DYNAMIC_RELOCATION32_V2 IMAGE_DYNAMIC_RELOCATION_V2; -typedef PIMAGE_DYNAMIC_RELOCATION32_V2 PIMAGE_DYNAMIC_RELOCATION_V2; -#endif - -// -// Defined symbolic dynamic relocation entries. -// - -#define IMAGE_DYNAMIC_RELOCATION_GUARD_RF_PROLOGUE 0x00000001 -#define IMAGE_DYNAMIC_RELOCATION_GUARD_RF_EPILOGUE 0x00000002 -#define IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER 0x00000003 -#define IMAGE_DYNAMIC_RELOCATION_GUARD_INDIR_CONTROL_TRANSFER 0x00000004 -#define IMAGE_DYNAMIC_RELOCATION_GUARD_SWITCHTABLE_BRANCH 0x00000005 - -#include "pshpack1.h" - -typedef struct _IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER { - BYTE PrologueByteCount; - // BYTE PrologueBytes[PrologueByteCount]; -} IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER; -typedef IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER UNALIGNED * PIMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER; - -typedef struct _IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER { - DWORD EpilogueCount; - BYTE EpilogueByteCount; - BYTE BranchDescriptorElementSize; - WORD BranchDescriptorCount; - // BYTE BranchDescriptors[...]; - // BYTE BranchDescriptorBitMap[...]; -} IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER; -typedef IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER UNALIGNED * PIMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER; - -typedef struct _IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION { - DWORD PageRelativeOffset : 12; - DWORD IndirectCall : 1; - DWORD IATIndex : 19; -} IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION; -typedef IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION UNALIGNED * PIMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION; - -typedef struct _IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION { - WORD PageRelativeOffset : 12; - WORD IndirectCall : 1; - WORD RexWPrefix : 1; - WORD CfgCheck : 1; - WORD Reserved : 1; -} IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION; -typedef IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION UNALIGNED * PIMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION; - -typedef struct _IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION { - WORD PageRelativeOffset : 12; - WORD RegisterNumber : 4; -} IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION; -typedef IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION UNALIGNED * PIMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION; - -#include "poppack.h" // Back to 4 byte packing - -// -// Load Configuration Directory Entry -// - -typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY32 { - DWORD Size; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD GlobalFlagsClear; - DWORD GlobalFlagsSet; - DWORD CriticalSectionDefaultTimeout; - DWORD DeCommitFreeBlockThreshold; - DWORD DeCommitTotalFreeThreshold; - DWORD LockPrefixTable; // VA - DWORD MaximumAllocationSize; - DWORD VirtualMemoryThreshold; - DWORD ProcessHeapFlags; - DWORD ProcessAffinityMask; - WORD CSDVersion; - WORD DependentLoadFlags; - DWORD EditList; // VA - DWORD SecurityCookie; // VA - DWORD SEHandlerTable; // VA - DWORD SEHandlerCount; - DWORD GuardCFCheckFunctionPointer; // VA - DWORD GuardCFDispatchFunctionPointer; // VA - DWORD GuardCFFunctionTable; // VA - DWORD GuardCFFunctionCount; - DWORD GuardFlags; - IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity; - DWORD GuardAddressTakenIatEntryTable; // VA - DWORD GuardAddressTakenIatEntryCount; - DWORD GuardLongJumpTargetTable; // VA - DWORD GuardLongJumpTargetCount; - DWORD DynamicValueRelocTable; // VA - DWORD CHPEMetadataPointer; - DWORD GuardRFFailureRoutine; // VA - DWORD GuardRFFailureRoutineFunctionPointer; // VA - DWORD DynamicValueRelocTableOffset; - WORD DynamicValueRelocTableSection; - WORD Reserved2; - DWORD GuardRFVerifyStackPointerFunctionPointer; // VA - DWORD HotPatchTableOffset; - DWORD Reserved3; - DWORD EnclaveConfigurationPointer; // VA - DWORD VolatileMetadataPointer; // VA -} IMAGE_LOAD_CONFIG_DIRECTORY32, *PIMAGE_LOAD_CONFIG_DIRECTORY32; - -typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY64 { - DWORD Size; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD GlobalFlagsClear; - DWORD GlobalFlagsSet; - DWORD CriticalSectionDefaultTimeout; - ULONGLONG DeCommitFreeBlockThreshold; - ULONGLONG DeCommitTotalFreeThreshold; - ULONGLONG LockPrefixTable; // VA - ULONGLONG MaximumAllocationSize; - ULONGLONG VirtualMemoryThreshold; - ULONGLONG ProcessAffinityMask; - DWORD ProcessHeapFlags; - WORD CSDVersion; - WORD DependentLoadFlags; - ULONGLONG EditList; // VA - ULONGLONG SecurityCookie; // VA - ULONGLONG SEHandlerTable; // VA - ULONGLONG SEHandlerCount; - ULONGLONG GuardCFCheckFunctionPointer; // VA - ULONGLONG GuardCFDispatchFunctionPointer; // VA - ULONGLONG GuardCFFunctionTable; // VA - ULONGLONG GuardCFFunctionCount; - DWORD GuardFlags; - IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity; - ULONGLONG GuardAddressTakenIatEntryTable; // VA - ULONGLONG GuardAddressTakenIatEntryCount; - ULONGLONG GuardLongJumpTargetTable; // VA - ULONGLONG GuardLongJumpTargetCount; - ULONGLONG DynamicValueRelocTable; // VA - ULONGLONG CHPEMetadataPointer; // VA - ULONGLONG GuardRFFailureRoutine; // VA - ULONGLONG GuardRFFailureRoutineFunctionPointer; // VA - DWORD DynamicValueRelocTableOffset; - WORD DynamicValueRelocTableSection; - WORD Reserved2; - ULONGLONG GuardRFVerifyStackPointerFunctionPointer; // VA - DWORD HotPatchTableOffset; - DWORD Reserved3; - ULONGLONG EnclaveConfigurationPointer; // VA - ULONGLONG VolatileMetadataPointer; // VA -} IMAGE_LOAD_CONFIG_DIRECTORY64, *PIMAGE_LOAD_CONFIG_DIRECTORY64; - -// end_ntoshvp -// begin_ntoshvp - -#ifdef _WIN64 -typedef IMAGE_LOAD_CONFIG_DIRECTORY64 IMAGE_LOAD_CONFIG_DIRECTORY; -typedef PIMAGE_LOAD_CONFIG_DIRECTORY64 PIMAGE_LOAD_CONFIG_DIRECTORY; -#else -typedef IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY; -typedef PIMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY; -#endif - -// end_ntoshvp - -typedef struct _IMAGE_HOT_PATCH_INFO { - DWORD Version; - DWORD Size; - DWORD SequenceNumber; - DWORD BaseImageList; - DWORD BaseImageCount; - DWORD BufferOffset; // Version 2 and later - DWORD ExtraPatchSize; // Version 3 and later -} IMAGE_HOT_PATCH_INFO, *PIMAGE_HOT_PATCH_INFO; - -typedef struct _IMAGE_HOT_PATCH_BASE { - DWORD SequenceNumber; - DWORD Flags; - DWORD OriginalTimeDateStamp; - DWORD OriginalCheckSum; - DWORD CodeIntegrityInfo; - DWORD CodeIntegritySize; - DWORD PatchTable; - DWORD BufferOffset; // Version 2 and later -} IMAGE_HOT_PATCH_BASE, *PIMAGE_HOT_PATCH_BASE; - -typedef struct _IMAGE_HOT_PATCH_HASHES { - BYTE SHA256[32]; - BYTE SHA1[20]; -} IMAGE_HOT_PATCH_HASHES, *PIMAGE_HOT_PATCH_HASHES; - -#define IMAGE_HOT_PATCH_BASE_OBLIGATORY 0x00000001 -#define IMAGE_HOT_PATCH_BASE_CAN_ROLL_BACK 0x00000002 - -#define IMAGE_HOT_PATCH_CHUNK_INVERSE 0x80000000 -#define IMAGE_HOT_PATCH_CHUNK_OBLIGATORY 0x40000000 -#define IMAGE_HOT_PATCH_CHUNK_RESERVED 0x3FF03000 -#define IMAGE_HOT_PATCH_CHUNK_TYPE 0x000FC000 -#define IMAGE_HOT_PATCH_CHUNK_SOURCE_RVA 0x00008000 -#define IMAGE_HOT_PATCH_CHUNK_TARGET_RVA 0x00004000 -#define IMAGE_HOT_PATCH_CHUNK_SIZE 0x00000FFF - -#define IMAGE_HOT_PATCH_NONE 0x00000000 -#define IMAGE_HOT_PATCH_FUNCTION 0x0001C000 -#define IMAGE_HOT_PATCH_ABSOLUTE 0x0002C000 -#define IMAGE_HOT_PATCH_REL32 0x0003C000 -#define IMAGE_HOT_PATCH_CALL_TARGET 0x00044000 -#define IMAGE_HOT_PATCH_INDIRECT 0x0005C000 -#define IMAGE_HOT_PATCH_NO_CALL_TARGET 0x00064000 -#define IMAGE_HOT_PATCH_DYNAMIC_VALUE 0x00078000 - -#define IMAGE_GUARD_CF_INSTRUMENTED 0x00000100 // Module performs control flow integrity checks using system-supplied support -#define IMAGE_GUARD_CFW_INSTRUMENTED 0x00000200 // Module performs control flow and write integrity checks -#define IMAGE_GUARD_CF_FUNCTION_TABLE_PRESENT 0x00000400 // Module contains valid control flow target metadata -#define IMAGE_GUARD_SECURITY_COOKIE_UNUSED 0x00000800 // Module does not make use of the /GS security cookie -#define IMAGE_GUARD_PROTECT_DELAYLOAD_IAT 0x00001000 // Module supports read only delay load IAT -#define IMAGE_GUARD_DELAYLOAD_IAT_IN_ITS_OWN_SECTION 0x00002000 // Delayload import table in its own .didat section (with nothing else in it) that can be freely reprotected -#define IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT 0x00004000 // Module contains suppressed export information. This also infers that the address taken - // taken IAT table is also present in the load config. -#define IMAGE_GUARD_CF_ENABLE_EXPORT_SUPPRESSION 0x00008000 // Module enables suppression of exports -#define IMAGE_GUARD_CF_LONGJUMP_TABLE_PRESENT 0x00010000 // Module contains longjmp target information -#define IMAGE_GUARD_RF_INSTRUMENTED 0x00020000 // Module contains return flow instrumentation and metadata -#define IMAGE_GUARD_RF_ENABLE 0x00040000 // Module requests that the OS enable return flow protection -#define IMAGE_GUARD_RF_STRICT 0x00080000 // Module requests that the OS enable return flow protection in strict mode -#define IMAGE_GUARD_RETPOLINE_PRESENT 0x00100000 // Module was built with retpoline support - -#define IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_MASK 0xF0000000 // Stride of Guard CF function table encoded in these bits (additional count of bytes per element) -#define IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_SHIFT 28 // Shift to right-justify Guard CF function table stride - -// -// GFIDS table entry flags. -// - -#define IMAGE_GUARD_FLAG_FID_SUPPRESSED 0x01 // The containing GFID entry is suppressed -#define IMAGE_GUARD_FLAG_EXPORT_SUPPRESSED 0x02 // The containing GFID entry is export suppressed - -// -// WIN CE Exception table format -// - -// -// Function table entry format. Function table is pointed to by the -// IMAGE_DIRECTORY_ENTRY_EXCEPTION directory entry. -// - -typedef struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY { - DWORD FuncStart; - DWORD PrologLen : 8; - DWORD FuncLen : 22; - DWORD ThirtyTwoBit : 1; - DWORD ExceptionFlag : 1; -} IMAGE_CE_RUNTIME_FUNCTION_ENTRY, * PIMAGE_CE_RUNTIME_FUNCTION_ENTRY; - -typedef struct _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY { - DWORD BeginAddress; - union { - DWORD UnwindData; - struct { - DWORD Flag : 2; - DWORD FunctionLength : 11; - DWORD Ret : 2; - DWORD H : 1; - DWORD Reg : 3; - DWORD R : 1; - DWORD L : 1; - DWORD C : 1; - DWORD StackAdjust : 10; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} IMAGE_ARM_RUNTIME_FUNCTION_ENTRY, * PIMAGE_ARM_RUNTIME_FUNCTION_ENTRY; - -typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY { - DWORD BeginAddress; - union { - DWORD UnwindData; - struct { - DWORD Flag : 2; - DWORD FunctionLength : 11; - DWORD RegF : 3; - DWORD RegI : 4; - DWORD H : 1; - DWORD CR : 2; - DWORD FrameSize : 9; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; -} IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, * PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY; - -typedef struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY { - ULONGLONG BeginAddress; - ULONGLONG EndAddress; - ULONGLONG ExceptionHandler; - ULONGLONG HandlerData; - ULONGLONG PrologEndAddress; -} IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY; - -typedef struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY { - DWORD BeginAddress; - DWORD EndAddress; - DWORD ExceptionHandler; - DWORD HandlerData; - DWORD PrologEndAddress; -} IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY; - -typedef struct _IMAGE_RUNTIME_FUNCTION_ENTRY { - DWORD BeginAddress; - DWORD EndAddress; - union { - DWORD UnwindInfoAddress; - DWORD UnwindData; - } DUMMYUNIONNAME; -} _IMAGE_RUNTIME_FUNCTION_ENTRY, *_PIMAGE_RUNTIME_FUNCTION_ENTRY; - -typedef _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_IA64_RUNTIME_FUNCTION_ENTRY; -typedef _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY; - -#if defined(_AXP64_) - -typedef IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY IMAGE_AXP64_RUNTIME_FUNCTION_ENTRY; -typedef PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY PIMAGE_AXP64_RUNTIME_FUNCTION_ENTRY; -typedef IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; -typedef PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; - -#elif defined(_ALPHA_) - -typedef IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; -typedef PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; - -#elif defined(_ARM64_) - -typedef IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; -typedef PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; - -#elif defined(_ARM_) - -typedef IMAGE_ARM_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; -typedef PIMAGE_ARM_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; - -#else - -typedef _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; -typedef _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; - -#endif - -// -// Sofware enclave information -// - -#define IMAGE_ENCLAVE_LONG_ID_LENGTH ENCLAVE_LONG_ID_LENGTH -#define IMAGE_ENCLAVE_SHORT_ID_LENGTH ENCLAVE_SHORT_ID_LENGTH - -typedef struct _IMAGE_ENCLAVE_CONFIG32 { - DWORD Size; - DWORD MinimumRequiredConfigSize; - DWORD PolicyFlags; - DWORD NumberOfImports; - DWORD ImportList; - DWORD ImportEntrySize; - BYTE FamilyID[IMAGE_ENCLAVE_SHORT_ID_LENGTH]; - BYTE ImageID[IMAGE_ENCLAVE_SHORT_ID_LENGTH]; - DWORD ImageVersion; - DWORD SecurityVersion; - DWORD EnclaveSize; - DWORD NumberOfThreads; - DWORD EnclaveFlags; -} IMAGE_ENCLAVE_CONFIG32, *PIMAGE_ENCLAVE_CONFIG32; - -typedef struct _IMAGE_ENCLAVE_CONFIG64 { - DWORD Size; - DWORD MinimumRequiredConfigSize; - DWORD PolicyFlags; - DWORD NumberOfImports; - DWORD ImportList; - DWORD ImportEntrySize; - BYTE FamilyID[IMAGE_ENCLAVE_SHORT_ID_LENGTH]; - BYTE ImageID[IMAGE_ENCLAVE_SHORT_ID_LENGTH]; - DWORD ImageVersion; - DWORD SecurityVersion; - ULONGLONG EnclaveSize; - DWORD NumberOfThreads; - DWORD EnclaveFlags; -} IMAGE_ENCLAVE_CONFIG64, *PIMAGE_ENCLAVE_CONFIG64; - -#ifdef _WIN64 -typedef IMAGE_ENCLAVE_CONFIG64 IMAGE_ENCLAVE_CONFIG; -typedef PIMAGE_ENCLAVE_CONFIG64 PIMAGE_ENCLAVE_CONFIG; -#else -typedef IMAGE_ENCLAVE_CONFIG32 IMAGE_ENCLAVE_CONFIG; -typedef PIMAGE_ENCLAVE_CONFIG32 PIMAGE_ENCLAVE_CONFIG; -#endif - -#define IMAGE_ENCLAVE_MINIMUM_CONFIG_SIZE FIELD_OFFSET(IMAGE_ENCLAVE_CONFIG, EnclaveFlags) - -#define IMAGE_ENCLAVE_POLICY_DEBUGGABLE 0x00000001 - -#define IMAGE_ENCLAVE_FLAG_PRIMARY_IMAGE 0x00000001 - -typedef struct _IMAGE_ENCLAVE_IMPORT { - DWORD MatchType; - DWORD MinimumSecurityVersion; - BYTE UniqueOrAuthorID[IMAGE_ENCLAVE_LONG_ID_LENGTH]; - BYTE FamilyID[IMAGE_ENCLAVE_SHORT_ID_LENGTH]; - BYTE ImageID[IMAGE_ENCLAVE_SHORT_ID_LENGTH]; - DWORD ImportName; - DWORD Reserved; -} IMAGE_ENCLAVE_IMPORT, *PIMAGE_ENCLAVE_IMPORT; - -#define IMAGE_ENCLAVE_IMPORT_MATCH_NONE 0x00000000 -#define IMAGE_ENCLAVE_IMPORT_MATCH_UNIQUE_ID 0x00000001 -#define IMAGE_ENCLAVE_IMPORT_MATCH_AUTHOR_ID 0x00000002 -#define IMAGE_ENCLAVE_IMPORT_MATCH_FAMILY_ID 0x00000003 -#define IMAGE_ENCLAVE_IMPORT_MATCH_IMAGE_ID 0x00000004 - -// -// Debug Format -// - -typedef struct _IMAGE_DEBUG_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Type; - DWORD SizeOfData; - DWORD AddressOfRawData; - DWORD PointerToRawData; -} IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY; - -#define IMAGE_DEBUG_TYPE_UNKNOWN 0 -#define IMAGE_DEBUG_TYPE_COFF 1 -#define IMAGE_DEBUG_TYPE_CODEVIEW 2 -#define IMAGE_DEBUG_TYPE_FPO 3 -#define IMAGE_DEBUG_TYPE_MISC 4 -#define IMAGE_DEBUG_TYPE_EXCEPTION 5 -#define IMAGE_DEBUG_TYPE_FIXUP 6 -#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7 -#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8 -#define IMAGE_DEBUG_TYPE_BORLAND 9 -#define IMAGE_DEBUG_TYPE_RESERVED10 10 -#define IMAGE_DEBUG_TYPE_CLSID 11 -#define IMAGE_DEBUG_TYPE_VC_FEATURE 12 -#define IMAGE_DEBUG_TYPE_POGO 13 -#define IMAGE_DEBUG_TYPE_ILTCG 14 -#define IMAGE_DEBUG_TYPE_MPX 15 -#define IMAGE_DEBUG_TYPE_REPRO 16 - - -typedef struct _IMAGE_COFF_SYMBOLS_HEADER { - DWORD NumberOfSymbols; - DWORD LvaToFirstSymbol; - DWORD NumberOfLinenumbers; - DWORD LvaToFirstLinenumber; - DWORD RvaToFirstByteOfCode; - DWORD RvaToLastByteOfCode; - DWORD RvaToFirstByteOfData; - DWORD RvaToLastByteOfData; -} IMAGE_COFF_SYMBOLS_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER; - -#define FRAME_FPO 0 -#define FRAME_TRAP 1 -#define FRAME_TSS 2 -#define FRAME_NONFPO 3 - -typedef struct _FPO_DATA { - DWORD ulOffStart; // offset 1st byte of function code - DWORD cbProcSize; // # bytes in function - DWORD cdwLocals; // # bytes in locals/4 - WORD cdwParams; // # bytes in params/4 - WORD cbProlog : 8; // # bytes in prolog - WORD cbRegs : 3; // # regs saved - WORD fHasSEH : 1; // TRUE if SEH in func - WORD fUseBP : 1; // TRUE if EBP has been allocated - WORD reserved : 1; // reserved for future use - WORD cbFrame : 2; // frame type -} FPO_DATA, *PFPO_DATA; -#define SIZEOF_RFPO_DATA 16 - - -#define IMAGE_DEBUG_MISC_EXENAME 1 - -typedef struct _IMAGE_DEBUG_MISC { - DWORD DataType; // type of misc data, see defines - DWORD Length; // total length of record, rounded to four - // byte multiple. - BOOLEAN Unicode; // TRUE if data is unicode string - BYTE Reserved[ 3 ]; - BYTE Data[ 1 ]; // Actual data -} IMAGE_DEBUG_MISC, *PIMAGE_DEBUG_MISC; - - -// -// Function table extracted from MIPS/ALPHA/IA64 images. Does not contain -// information needed only for runtime support. Just those fields for -// each entry needed by a debugger. -// - -typedef struct _IMAGE_FUNCTION_ENTRY { - DWORD StartingAddress; - DWORD EndingAddress; - DWORD EndOfPrologue; -} IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY; - -typedef struct _IMAGE_FUNCTION_ENTRY64 { - ULONGLONG StartingAddress; - ULONGLONG EndingAddress; - union { - ULONGLONG EndOfPrologue; - ULONGLONG UnwindInfoAddress; - } DUMMYUNIONNAME; -} IMAGE_FUNCTION_ENTRY64, *PIMAGE_FUNCTION_ENTRY64; - -// -// Debugging information can be stripped from an image file and placed -// in a separate .DBG file, whose file name part is the same as the -// image file name part (e.g. symbols for CMD.EXE could be stripped -// and placed in CMD.DBG). This is indicated by the IMAGE_FILE_DEBUG_STRIPPED -// flag in the Characteristics field of the file header. The beginning of -// the .DBG file contains the following structure which captures certain -// information from the image file. This allows a debug to proceed even if -// the original image file is not accessable. This header is followed by -// zero of more IMAGE_SECTION_HEADER structures, followed by zero or more -// IMAGE_DEBUG_DIRECTORY structures. The latter structures and those in -// the image file contain file offsets relative to the beginning of the -// .DBG file. -// -// If symbols have been stripped from an image, the IMAGE_DEBUG_MISC structure -// is left in the image file, but not mapped. This allows a debugger to -// compute the name of the .DBG file, from the name of the image in the -// IMAGE_DEBUG_MISC structure. -// - -typedef struct _IMAGE_SEPARATE_DEBUG_HEADER { - WORD Signature; - WORD Flags; - WORD Machine; - WORD Characteristics; - DWORD TimeDateStamp; - DWORD CheckSum; - DWORD ImageBase; - DWORD SizeOfImage; - DWORD NumberOfSections; - DWORD ExportedNamesSize; - DWORD DebugDirectorySize; - DWORD SectionAlignment; - DWORD Reserved[2]; -} IMAGE_SEPARATE_DEBUG_HEADER, *PIMAGE_SEPARATE_DEBUG_HEADER; - -// begin_ntoshvp - -typedef struct _NON_PAGED_DEBUG_INFO { - WORD Signature; - WORD Flags; - DWORD Size; - WORD Machine; - WORD Characteristics; - DWORD TimeDateStamp; - DWORD CheckSum; - DWORD SizeOfImage; - ULONGLONG ImageBase; - //DebugDirectorySize - //IMAGE_DEBUG_DIRECTORY -} NON_PAGED_DEBUG_INFO, *PNON_PAGED_DEBUG_INFO; - -// end_ntoshvp - -#ifndef _MAC -#define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944 -#define NON_PAGED_DEBUG_SIGNATURE 0x494E -#else -#define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4449 // DI -#define NON_PAGED_DEBUG_SIGNATURE 0x4E49 // NI -#endif - -#define IMAGE_SEPARATE_DEBUG_FLAGS_MASK 0x8000 -#define IMAGE_SEPARATE_DEBUG_MISMATCH 0x8000 // when DBG was updated, the - // old checksum didn't match. - -// -// The .arch section is made up of headers, each describing an amask position/value -// pointing to an array of IMAGE_ARCHITECTURE_ENTRY's. Each "array" (both the header -// and entry arrays) are terminiated by a quadword of 0xffffffffL. -// -// NOTE: There may be quadwords of 0 sprinkled around and must be skipped. -// - -typedef struct _ImageArchitectureHeader { - unsigned int AmaskValue: 1; // 1 -> code section depends on mask bit - // 0 -> new instruction depends on mask bit - int :7; // MBZ - unsigned int AmaskShift: 8; // Amask bit in question for this fixup - int :16; // MBZ - DWORD FirstEntryRVA; // RVA into .arch section to array of ARCHITECTURE_ENTRY's -} IMAGE_ARCHITECTURE_HEADER, *PIMAGE_ARCHITECTURE_HEADER; - -typedef struct _ImageArchitectureEntry { - DWORD FixupInstRVA; // RVA of instruction to fixup - DWORD NewInst; // fixup instruction (see alphaops.h) -} IMAGE_ARCHITECTURE_ENTRY, *PIMAGE_ARCHITECTURE_ENTRY; - -#include "poppack.h" // Back to the initial value - -// The following structure defines the new import object. Note the values of the first two fields, -// which must be set as stated in order to differentiate old and new import members. -// Following this structure, the linker emits two null-terminated strings used to recreate the -// import at the time of use. The first string is the import's name, the second is the dll's name. - -#define IMPORT_OBJECT_HDR_SIG2 0xffff - -typedef struct IMPORT_OBJECT_HEADER { - WORD Sig1; // Must be IMAGE_FILE_MACHINE_UNKNOWN - WORD Sig2; // Must be IMPORT_OBJECT_HDR_SIG2. - WORD Version; - WORD Machine; - DWORD TimeDateStamp; // Time/date stamp - DWORD SizeOfData; // particularly useful for incremental links - - union { - WORD Ordinal; // if grf & IMPORT_OBJECT_ORDINAL - WORD Hint; - } DUMMYUNIONNAME; - - WORD Type : 2; // IMPORT_TYPE - WORD NameType : 3; // IMPORT_NAME_TYPE - WORD Reserved : 11; // Reserved. Must be zero. -} IMPORT_OBJECT_HEADER; - -typedef enum IMPORT_OBJECT_TYPE -{ - IMPORT_OBJECT_CODE = 0, - IMPORT_OBJECT_DATA = 1, - IMPORT_OBJECT_CONST = 2, -} IMPORT_OBJECT_TYPE; - -typedef enum IMPORT_OBJECT_NAME_TYPE -{ - IMPORT_OBJECT_ORDINAL = 0, // Import by ordinal - IMPORT_OBJECT_NAME = 1, // Import name == public symbol name. - IMPORT_OBJECT_NAME_NO_PREFIX = 2, // Import name == public symbol name skipping leading ?, @, or optionally _. - IMPORT_OBJECT_NAME_UNDECORATE = 3, // Import name == public symbol name skipping leading ?, @, or optionally _ - // and truncating at first @. - IMPORT_OBJECT_NAME_EXPORTAS = 4, // Import name == a name is explicitly provided after the DLL name. -} IMPORT_OBJECT_NAME_TYPE; - - -#ifndef __IMAGE_COR20_HEADER_DEFINED__ -#define __IMAGE_COR20_HEADER_DEFINED__ - -typedef enum ReplacesCorHdrNumericDefines -{ -// COM+ Header entry point flags. - COMIMAGE_FLAGS_ILONLY =0x00000001, - COMIMAGE_FLAGS_32BITREQUIRED =0x00000002, - COMIMAGE_FLAGS_IL_LIBRARY =0x00000004, - COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008, - COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010, - COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000, - COMIMAGE_FLAGS_32BITPREFERRED =0x00020000, - -// Version flags for image. - COR_VERSION_MAJOR_V2 =2, - COR_VERSION_MAJOR =COR_VERSION_MAJOR_V2, - COR_VERSION_MINOR =5, - COR_DELETED_NAME_LENGTH =8, - COR_VTABLEGAP_NAME_LENGTH =8, - -// Maximum size of a NativeType descriptor. - NATIVE_TYPE_MAX_CB =1, - COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE=0xFF, - -// #defines for the MIH FLAGS - IMAGE_COR_MIH_METHODRVA =0x01, - IMAGE_COR_MIH_EHRVA =0x02, - IMAGE_COR_MIH_BASICBLOCK =0x08, - -// V-table constants - COR_VTABLE_32BIT =0x01, // V-table slots are 32-bits in size. - COR_VTABLE_64BIT =0x02, // V-table slots are 64-bits in size. - COR_VTABLE_FROM_UNMANAGED =0x04, // If set, transition from unmanaged. - COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x08, // If set, transition from unmanaged with keeping the current appdomain. - COR_VTABLE_CALL_MOST_DERIVED =0x10, // Call most derived method described by - -// EATJ constants - IMAGE_COR_EATJ_THUNK_SIZE =32, // Size of a jump thunk reserved range. - -// Max name lengths - //@todo: Change to unlimited name lengths. - MAX_CLASS_NAME =1024, - MAX_PACKAGE_NAME =1024, -} ReplacesCorHdrNumericDefines; - -// CLR 2.0 header structure. -typedef struct IMAGE_COR20_HEADER -{ - // Header versioning - DWORD cb; - WORD MajorRuntimeVersion; - WORD MinorRuntimeVersion; - - // Symbol table and startup information - IMAGE_DATA_DIRECTORY MetaData; - DWORD Flags; - - // If COMIMAGE_FLAGS_NATIVE_ENTRYPOINT is not set, EntryPointToken represents a managed entrypoint. - // If COMIMAGE_FLAGS_NATIVE_ENTRYPOINT is set, EntryPointRVA represents an RVA to a native entrypoint. - union { - DWORD EntryPointToken; - DWORD EntryPointRVA; - } DUMMYUNIONNAME; - - // Binding information - IMAGE_DATA_DIRECTORY Resources; - IMAGE_DATA_DIRECTORY StrongNameSignature; - - // Regular fixup and binding information - IMAGE_DATA_DIRECTORY CodeManagerTable; - IMAGE_DATA_DIRECTORY VTableFixups; - IMAGE_DATA_DIRECTORY ExportAddressTableJumps; - - // Precompiled image info (internal use only - set to zero) - IMAGE_DATA_DIRECTORY ManagedNativeHeader; - -} IMAGE_COR20_HEADER, *PIMAGE_COR20_HEADER; - -#endif // __IMAGE_COR20_HEADER_DEFINED__ - -// -// End Image Format -// - -#include - -// -// prototypes -// - -// begin_ntifs - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -#if (NTDDI_VERSION > NTDDI_WINXP) - -NTSYSAPI -_Success_(return != 0) -WORD -NTAPI -RtlCaptureStackBackTrace( - _In_ DWORD FramesToSkip, - _In_ DWORD FramesToCapture, - _Out_writes_to_(FramesToCapture,return) PVOID* BackTrace, - _Out_opt_ PDWORD BackTraceHash - ); - - -#endif - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -#if (NTDDI_VERSION > NTDDI_WIN2K) - -NTSYSAPI -VOID -NTAPI -RtlCaptureContext( - _Out_ PCONTEXT ContextRecord - ); - - -#endif - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -// end_ntifs - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -VOID -NTAPI -RtlUnwind( - _In_opt_ PVOID TargetFrame, - _In_opt_ PVOID TargetIp, - _In_opt_ PEXCEPTION_RECORD ExceptionRecord, - _In_ PVOID ReturnValue - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#if defined(_AMD64_) - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -BOOLEAN -__cdecl -RtlAddFunctionTable( - _In_reads_(EntryCount) PRUNTIME_FUNCTION FunctionTable, - _In_ DWORD EntryCount, - _In_ DWORD64 BaseAddress - ); - - -NTSYSAPI -BOOLEAN -__cdecl -RtlDeleteFunctionTable( - _In_ PRUNTIME_FUNCTION FunctionTable - ); - - -NTSYSAPI -BOOLEAN -__cdecl -RtlInstallFunctionTableCallback( - _In_ DWORD64 TableIdentifier, - _In_ DWORD64 BaseAddress, - _In_ DWORD Length, - _In_ PGET_RUNTIME_FUNCTION_CALLBACK Callback, - _In_opt_ PVOID Context, - _In_opt_ PCWSTR OutOfProcessCallbackDll - ); - - -#if (NTDDI_VERSION >= NTDDI_WIN8) - -NTSYSAPI -DWORD -NTAPI -RtlAddGrowableFunctionTable( - _Out_ PVOID* DynamicTable, - _In_reads_(MaximumEntryCount) PRUNTIME_FUNCTION FunctionTable, - _In_ DWORD EntryCount, - _In_ DWORD MaximumEntryCount, - _In_ ULONG_PTR RangeBase, - _In_ ULONG_PTR RangeEnd - ); - - -NTSYSAPI -VOID -NTAPI -RtlGrowFunctionTable( - _Inout_ PVOID DynamicTable, - _In_ DWORD NewEntryCount - ); - - -NTSYSAPI -VOID -NTAPI -RtlDeleteGrowableFunctionTable( - _In_ PVOID DynamicTable - ); - - -#endif// (NTDDI_VERSION >= NTDDI_WIN8) -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Application or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -NTSYSAPI -PRUNTIME_FUNCTION -NTAPI -RtlLookupFunctionEntry( - _In_ DWORD64 ControlPc, - _Out_ PDWORD64 ImageBase, - _Inout_opt_ PUNWIND_HISTORY_TABLE HistoryTable - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion - -#pragma region Desktop Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -NTSYSAPI -VOID -__cdecl -RtlRestoreContext( - _In_ PCONTEXT ContextRecord, - _In_opt_ struct _EXCEPTION_RECORD* ExceptionRecord - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion - -#pragma region Application or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -NTSYSAPI -VOID -NTAPI -RtlUnwindEx( - _In_opt_ PVOID TargetFrame, - _In_opt_ PVOID TargetIp, - _In_opt_ PEXCEPTION_RECORD ExceptionRecord, - _In_ PVOID ReturnValue, - _In_ PCONTEXT ContextRecord, - _In_opt_ PUNWIND_HISTORY_TABLE HistoryTable - ); - - -NTSYSAPI -PEXCEPTION_ROUTINE -NTAPI -RtlVirtualUnwind( - _In_ DWORD HandlerType, - _In_ DWORD64 ImageBase, - _In_ DWORD64 ControlPc, - _In_ PRUNTIME_FUNCTION FunctionEntry, - _Inout_ PCONTEXT ContextRecord, - _Out_ PVOID* HandlerData, - _Out_ PDWORD64 EstablisherFrame, - _Inout_opt_ PKNONVOLATILE_CONTEXT_POINTERS ContextPointers - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion - -#endif // _AMD64_ - - -#if defined(_ARM_) - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -BOOLEAN -__cdecl -RtlAddFunctionTable( - _In_reads_(EntryCount) PRUNTIME_FUNCTION FunctionTable, - _In_ DWORD EntryCount, - _In_ DWORD BaseAddress - ); - - -NTSYSAPI -BOOLEAN -__cdecl -RtlDeleteFunctionTable( - _In_ PRUNTIME_FUNCTION FunctionTable - ); - - -NTSYSAPI -BOOLEAN -__cdecl -RtlInstallFunctionTableCallback( - _In_ DWORD TableIdentifier, - _In_ DWORD BaseAddress, - _In_ DWORD Length, - _In_ PGET_RUNTIME_FUNCTION_CALLBACK Callback, - _In_opt_ PVOID Context, - _In_opt_ PCWSTR OutOfProcessCallbackDll - ); - - -#if (NTDDI_VERSION >= NTDDI_WIN8) - -NTSYSAPI -DWORD -NTAPI -RtlAddGrowableFunctionTable( - _Out_ PVOID* DynamicTable, - _In_reads_(MaximumEntryCount) PRUNTIME_FUNCTION FunctionTable, - _In_ DWORD EntryCount, - _In_ DWORD MaximumEntryCount, - _In_ ULONG_PTR RangeBase, - _In_ ULONG_PTR RangeEnd - ); - - -NTSYSAPI -VOID -NTAPI -RtlGrowFunctionTable( - _Inout_ PVOID DynamicTable, - _In_ DWORD NewEntryCount - ); - - -NTSYSAPI -VOID -NTAPI -RtlDeleteGrowableFunctionTable( - _In_ PVOID DynamicTable - ); - - -#endif// (NTDDI_VERSION >= NTDDI_WIN8) -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -PRUNTIME_FUNCTION -NTAPI -RtlLookupFunctionEntry( - _In_ ULONG_PTR ControlPc, - _Out_ PDWORD ImageBase, - _Inout_opt_ PUNWIND_HISTORY_TABLE HistoryTable - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -VOID -__cdecl -RtlRestoreContext( - _In_ PCONTEXT ContextRecord, - _In_opt_ struct _EXCEPTION_RECORD* ExceptionRecord - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Application or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -NTSYSAPI -VOID -NTAPI -RtlUnwindEx( - _In_opt_ PVOID TargetFrame, - _In_opt_ PVOID TargetIp, - _In_opt_ PEXCEPTION_RECORD ExceptionRecord, - _In_ PVOID ReturnValue, - _In_ PCONTEXT ContextRecord, - _In_opt_ PUNWIND_HISTORY_TABLE HistoryTable - ); - - -NTSYSAPI -PEXCEPTION_ROUTINE -NTAPI -RtlVirtualUnwind( - _In_ DWORD HandlerType, - _In_ DWORD ImageBase, - _In_ DWORD ControlPc, - _In_ PRUNTIME_FUNCTION FunctionEntry, - _Inout_ PCONTEXT ContextRecord, - _Out_ PVOID* HandlerData, - _Out_ PDWORD EstablisherFrame, - _Inout_opt_ PKNONVOLATILE_CONTEXT_POINTERS ContextPointers - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion - -#endif // _ARM_ - - -#if defined(_ARM64_) - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -BOOLEAN -__cdecl -RtlAddFunctionTable( - _In_reads_(EntryCount) PRUNTIME_FUNCTION FunctionTable, - _In_ DWORD EntryCount, - _In_ ULONG_PTR BaseAddress - ); - - -NTSYSAPI -BOOLEAN -__cdecl -RtlDeleteFunctionTable( - _In_ PRUNTIME_FUNCTION FunctionTable - ); - - -NTSYSAPI -BOOLEAN -__cdecl -RtlInstallFunctionTableCallback( - _In_ ULONG_PTR TableIdentifier, - _In_ ULONG_PTR BaseAddress, - _In_ DWORD Length, - _In_ PGET_RUNTIME_FUNCTION_CALLBACK Callback, - _In_opt_ PVOID Context, - _In_opt_ PCWSTR OutOfProcessCallbackDll - ); - - -#if (NTDDI_VERSION >= NTDDI_WIN8) - -NTSYSAPI -DWORD -NTAPI -RtlAddGrowableFunctionTable( - _Out_ PVOID* DynamicTable, - _In_reads_(MaximumEntryCount) PRUNTIME_FUNCTION FunctionTable, - _In_ DWORD EntryCount, - _In_ DWORD MaximumEntryCount, - _In_ ULONG_PTR RangeBase, - _In_ ULONG_PTR RangeEnd - ); - - -NTSYSAPI -VOID -NTAPI -RtlGrowFunctionTable( - _Inout_ PVOID DynamicTable, - _In_ DWORD NewEntryCount - ); - - -NTSYSAPI -VOID -NTAPI -RtlDeleteGrowableFunctionTable( - _In_ PVOID DynamicTable - ); - - -#endif// (NTDDI_VERSION >= NTDDI_WIN8) -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -PRUNTIME_FUNCTION -NTAPI -RtlLookupFunctionEntry( - _In_ ULONG_PTR ControlPc, - _Out_ PULONG_PTR ImageBase, - _Inout_opt_ PUNWIND_HISTORY_TABLE HistoryTable - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -VOID -__cdecl -RtlRestoreContext( - _In_ PCONTEXT ContextRecord, - _In_opt_ struct _EXCEPTION_RECORD* ExceptionRecord - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Application or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -NTSYSAPI -VOID -NTAPI -RtlUnwindEx( - _In_opt_ PVOID TargetFrame, - _In_opt_ PVOID TargetIp, - _In_opt_ PEXCEPTION_RECORD ExceptionRecord, - _In_ PVOID ReturnValue, - _In_ PCONTEXT ContextRecord, - _In_opt_ PUNWIND_HISTORY_TABLE HistoryTable - ); - - -NTSYSAPI -PEXCEPTION_ROUTINE -NTAPI -RtlVirtualUnwind( - _In_ DWORD HandlerType, - _In_ ULONG_PTR ImageBase, - _In_ ULONG_PTR ControlPc, - _In_ PRUNTIME_FUNCTION FunctionEntry, - _Inout_ PCONTEXT ContextRecord, - _Out_ PVOID* HandlerData, - _Out_ PULONG_PTR EstablisherFrame, - _Inout_opt_ PKNONVOLATILE_CONTEXT_POINTERS ContextPointers - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion - -#endif // _ARM64_ - -#if defined(_CHPE_X86_ARM64_) - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -VOID -NTAPI -RtlUnwindEx( - _In_opt_ PVOID TargetFrame, - _In_opt_ PVOID TargetIp, - _In_opt_ PEXCEPTION_RECORD ExceptionRecord, - _In_ PVOID ReturnValue, - _In_ PCONTEXT ContextRecord, - _In_opt_ PVOID HistoryTable - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY -NTAPI -RtlLookupFunctionEntryCHPE( - _In_ ULONG_PTR ControlPc, - _Out_ PULONG_PTR ImageBase, - _Inout_opt_ PVOID HistoryTable - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#endif // _X86_ - -#pragma region Desktop Family or OneCore Family or Games Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) - -NTSYSAPI -__analysis_noreturn -VOID -NTAPI -RtlRaiseException( - _In_ PEXCEPTION_RECORD ExceptionRecord - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */ -#pragma endregion - -#pragma region Application or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -PVOID -NTAPI -RtlPcToFileHeader( - _In_ PVOID PcValue, - _Out_ PVOID* BaseOfImage - ); - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -#if (NTDDI_VERSION >= NTDDI_WIN2K) - -_Check_return_ -NTSYSAPI -SIZE_T -NTAPI -RtlCompareMemory( - _In_ const VOID* Source1, - _In_ const VOID* Source2, - _In_ SIZE_T Length - ); - - -#endif - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -// -// for move macros -// -#ifdef _MAC -#ifndef _INC_STRING -#include -#endif /* _INC_STRING */ -#else -#include -#endif // _MAC - - -#ifndef _SLIST_HEADER_ -#define _SLIST_HEADER_ - -#if defined(_WIN64) - -// -// The type SINGLE_LIST_ENTRY is not suitable for use with SLISTs. For -// WIN64, an entry on an SLIST is required to be 16-byte aligned, while a -// SINGLE_LIST_ENTRY structure has only 8 byte alignment. -// -// Therefore, all SLIST code should use the SLIST_ENTRY type instead of the -// SINGLE_LIST_ENTRY type. -// - -#pragma warning(push) -#pragma warning(disable:4324) // structure padded due to align() - -typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY { - struct _SLIST_ENTRY *Next; -} SLIST_ENTRY, *PSLIST_ENTRY; - -#pragma warning(pop) - -#else - -typedef struct _SINGLE_LIST_ENTRY SLIST_ENTRY, *PSLIST_ENTRY; - -#endif // _WIN64 - -#if defined(_AMD64_) - -typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER { - struct { // original struct - ULONGLONG Alignment; - ULONGLONG Region; - } DUMMYSTRUCTNAME; - struct { // x64 16-byte header - ULONGLONG Depth:16; - ULONGLONG Sequence:48; - ULONGLONG Reserved:4; - ULONGLONG NextEntry:60; // last 4 bits are always 0's - } HeaderX64; -} SLIST_HEADER, *PSLIST_HEADER; - -#elif defined(_ARM64_) - -// ARM64_WORKITEM: should this be merged with AMD64 above? -typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER { - struct { // original struct - ULONGLONG Alignment; - ULONGLONG Region; - } DUMMYSTRUCTNAME; - struct { // ARM64 16-byte header - ULONGLONG Depth:16; - ULONGLONG Sequence:48; - ULONGLONG Reserved:4; - ULONGLONG NextEntry:60; // last 4 bits are always 0's - } HeaderArm64; -} SLIST_HEADER, *PSLIST_HEADER; - -#elif defined(_X86_) - -typedef union _SLIST_HEADER { - ULONGLONG Alignment; - struct { - SLIST_ENTRY Next; - WORD Depth; - WORD CpuId; - } DUMMYSTRUCTNAME; -} SLIST_HEADER, *PSLIST_HEADER; - -#elif defined(_ARM_) - -typedef union _SLIST_HEADER { - ULONGLONG Alignment; - struct { - SLIST_ENTRY Next; - WORD Depth; - WORD Reserved; - } DUMMYSTRUCTNAME; -} SLIST_HEADER, *PSLIST_HEADER; - -#endif - -#endif // _SLIST_HEADER_ - - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -NTSYSAPI -VOID -NTAPI -RtlInitializeSListHead ( - _Out_ PSLIST_HEADER ListHead - ); - -_Must_inspect_result_ -NTSYSAPI -PSLIST_ENTRY -NTAPI -RtlFirstEntrySList ( - _In_ const SLIST_HEADER *ListHead - ); - -NTSYSAPI -PSLIST_ENTRY -NTAPI -RtlInterlockedPopEntrySList ( - _Inout_ PSLIST_HEADER ListHead - ); - -NTSYSAPI -PSLIST_ENTRY -NTAPI -RtlInterlockedPushEntrySList ( - _Inout_ PSLIST_HEADER ListHead, - _Inout_ __drv_aliasesMem PSLIST_ENTRY ListEntry - ); - -NTSYSAPI -PSLIST_ENTRY -NTAPI -RtlInterlockedPushListSListEx ( - _Inout_ PSLIST_HEADER ListHead, - _Inout_ __drv_aliasesMem PSLIST_ENTRY List, - _Inout_ PSLIST_ENTRY ListEnd, - _In_ DWORD Count - ); - -NTSYSAPI -PSLIST_ENTRY -NTAPI -RtlInterlockedFlushSList ( - _Inout_ PSLIST_HEADER ListHead - ); - -NTSYSAPI -WORD -NTAPI -RtlQueryDepthSList ( - _In_ PSLIST_HEADER ListHead - ); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - - -#ifndef _RTL_RUN_ONCE_DEF -#define _RTL_RUN_ONCE_DEF - -// -// Run once -// - -#define RTL_RUN_ONCE_INIT {0} // Static initializer - -// -// Run once flags -// - -#define RTL_RUN_ONCE_CHECK_ONLY 0x00000001UL -#define RTL_RUN_ONCE_ASYNC 0x00000002UL -#define RTL_RUN_ONCE_INIT_FAILED 0x00000004UL - -// -// The context stored in the run once structure must leave the following number -// of low order bits unused. -// - -#define RTL_RUN_ONCE_CTX_RESERVED_BITS 2 - -typedef union _RTL_RUN_ONCE { - PVOID Ptr; -} RTL_RUN_ONCE, *PRTL_RUN_ONCE; - -#endif // _RTL_RUN_ONCE_DEF - -typedef struct _RTL_BARRIER { - DWORD Reserved1; - DWORD Reserved2; - ULONG_PTR Reserved3[2]; - DWORD Reserved4; - DWORD Reserved5; -} RTL_BARRIER, *PRTL_BARRIER; -// begin_ntoshvp - -// Include the more obscure SAL annotations (like __drv_aliasesMem) instead of assuming the crtdefs.h will include them. -#include - -// -// Fast fail failure codes. -// -// N.B. Failure code zero should not be used, but is required to be reserved -// for compatibility with previous handling of the -// STATUS_STACK_BUFFER_OVERRUN exception status code. -// - -// When updating failure codes here, please also update references in -// the debugger codebase (currently onecore\sdktools\debuggers\ntsd64\util.cpp) - -#define FAST_FAIL_LEGACY_GS_VIOLATION 0 -#define FAST_FAIL_VTGUARD_CHECK_FAILURE 1 -#define FAST_FAIL_STACK_COOKIE_CHECK_FAILURE 2 -#define FAST_FAIL_CORRUPT_LIST_ENTRY 3 -#define FAST_FAIL_INCORRECT_STACK 4 -#define FAST_FAIL_INVALID_ARG 5 -#define FAST_FAIL_GS_COOKIE_INIT 6 -#define FAST_FAIL_FATAL_APP_EXIT 7 -#define FAST_FAIL_RANGE_CHECK_FAILURE 8 -#define FAST_FAIL_UNSAFE_REGISTRY_ACCESS 9 -#define FAST_FAIL_GUARD_ICALL_CHECK_FAILURE 10 -#define FAST_FAIL_GUARD_WRITE_CHECK_FAILURE 11 -#define FAST_FAIL_INVALID_FIBER_SWITCH 12 -#define FAST_FAIL_INVALID_SET_OF_CONTEXT 13 -#define FAST_FAIL_INVALID_REFERENCE_COUNT 14 -#define FAST_FAIL_INVALID_JUMP_BUFFER 18 -#define FAST_FAIL_MRDATA_MODIFIED 19 -#define FAST_FAIL_CERTIFICATION_FAILURE 20 -#define FAST_FAIL_INVALID_EXCEPTION_CHAIN 21 -#define FAST_FAIL_CRYPTO_LIBRARY 22 -#define FAST_FAIL_INVALID_CALL_IN_DLL_CALLOUT 23 -#define FAST_FAIL_INVALID_IMAGE_BASE 24 -#define FAST_FAIL_DLOAD_PROTECTION_FAILURE 25 -#define FAST_FAIL_UNSAFE_EXTENSION_CALL 26 -#define FAST_FAIL_DEPRECATED_SERVICE_INVOKED 27 -#define FAST_FAIL_INVALID_BUFFER_ACCESS 28 -#define FAST_FAIL_INVALID_BALANCED_TREE 29 -#define FAST_FAIL_INVALID_NEXT_THREAD 30 -#define FAST_FAIL_GUARD_ICALL_CHECK_SUPPRESSED 31 // Telemetry, nonfatal -#define FAST_FAIL_APCS_DISABLED 32 -#define FAST_FAIL_INVALID_IDLE_STATE 33 -#define FAST_FAIL_MRDATA_PROTECTION_FAILURE 34 -#define FAST_FAIL_UNEXPECTED_HEAP_EXCEPTION 35 -#define FAST_FAIL_INVALID_LOCK_STATE 36 -#define FAST_FAIL_GUARD_JUMPTABLE 37 // Known to compiler, must retain value 37 -#define FAST_FAIL_INVALID_LONGJUMP_TARGET 38 -#define FAST_FAIL_INVALID_DISPATCH_CONTEXT 39 -#define FAST_FAIL_INVALID_THREAD 40 -#define FAST_FAIL_INVALID_SYSCALL_NUMBER 41 // Telemetry, nonfatal -#define FAST_FAIL_INVALID_FILE_OPERATION 42 // Telemetry, nonfatal -#define FAST_FAIL_LPAC_ACCESS_DENIED 43 // Telemetry, nonfatal -#define FAST_FAIL_GUARD_SS_FAILURE 44 -#define FAST_FAIL_LOADER_CONTINUITY_FAILURE 45 // Telemetry, nonfatal -#define FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE 46 -#define FAST_FAIL_INVALID_CONTROL_STACK 47 -#define FAST_FAIL_SET_CONTEXT_DENIED 48 -#define FAST_FAIL_INVALID_IAT 49 -#define FAST_FAIL_HEAP_METADATA_CORRUPTION 50 -#define FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION 51 -#define FAST_FAIL_LOW_LABEL_ACCESS_DENIED 52 // Telemetry, nonfatal -#define FAST_FAIL_ENCLAVE_CALL_FAILURE 53 -#define FAST_FAIL_UNHANDLED_LSS_EXCEPTON 54 -#define FAST_FAIL_ADMINLESS_ACCESS_DENIED 55 // Telemetry, nonfatal -#define FAST_FAIL_UNEXPECTED_CALL 56 -#define FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS 57 -#define FAST_FAIL_UNEXPECTED_HOST_BEHAVIOR 58 -#define FAST_FAIL_FLAGS_CORRUPTION 59 -#define FAST_FAIL_INVALID_FAST_FAIL_CODE 0xFFFFFFFF - -#if _MSC_VER >= 1610 - -DECLSPEC_NORETURN -VOID -__fastfail( - _In_ unsigned int Code - ); - -#pragma intrinsic(__fastfail) - -#endif - -#define HEAP_NO_SERIALIZE 0x00000001 -#define HEAP_GROWABLE 0x00000002 -#define HEAP_GENERATE_EXCEPTIONS 0x00000004 -#define HEAP_ZERO_MEMORY 0x00000008 -#define HEAP_REALLOC_IN_PLACE_ONLY 0x00000010 -#define HEAP_TAIL_CHECKING_ENABLED 0x00000020 -#define HEAP_FREE_CHECKING_ENABLED 0x00000040 -#define HEAP_DISABLE_COALESCE_ON_FREE 0x00000080 -#define HEAP_CREATE_ALIGN_16 0x00010000 -#define HEAP_CREATE_ENABLE_TRACING 0x00020000 -#define HEAP_CREATE_ENABLE_EXECUTE 0x00040000 -#define HEAP_MAXIMUM_TAG 0x0FFF -#define HEAP_PSEUDO_TAG_FLAG 0x8000 -#define HEAP_TAG_SHIFT 18 -#define HEAP_CREATE_SEGMENT_HEAP 0x00000100 -#define HEAP_CREATE_HARDENED 0x00000200 -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#if !defined(MIDL_PASS) -FORCEINLINE -DWORD -HEAP_MAKE_TAG_FLAGS ( - _In_ DWORD TagBase, - _In_ DWORD Tag - ) - -{ - return ((DWORD)((TagBase) + ((Tag) << HEAP_TAG_SHIFT))); -} -#endif -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#define IS_TEXT_UNICODE_ASCII16 0x0001 -#define IS_TEXT_UNICODE_REVERSE_ASCII16 0x0010 - -#define IS_TEXT_UNICODE_STATISTICS 0x0002 -#define IS_TEXT_UNICODE_REVERSE_STATISTICS 0x0020 - -#define IS_TEXT_UNICODE_CONTROLS 0x0004 -#define IS_TEXT_UNICODE_REVERSE_CONTROLS 0x0040 - -#define IS_TEXT_UNICODE_SIGNATURE 0x0008 -#define IS_TEXT_UNICODE_REVERSE_SIGNATURE 0x0080 - -#define IS_TEXT_UNICODE_ILLEGAL_CHARS 0x0100 -#define IS_TEXT_UNICODE_ODD_LENGTH 0x0200 -#define IS_TEXT_UNICODE_DBCS_LEADBYTE 0x0400 -#define IS_TEXT_UNICODE_NULL_BYTES 0x1000 - -#define IS_TEXT_UNICODE_UNICODE_MASK 0x000F -#define IS_TEXT_UNICODE_REVERSE_MASK 0x00F0 -#define IS_TEXT_UNICODE_NOT_UNICODE_MASK 0x0F00 -#define IS_TEXT_UNICODE_NOT_ASCII_MASK 0xF000 - -#define COMPRESSION_FORMAT_NONE (0x0000) -#define COMPRESSION_FORMAT_DEFAULT (0x0001) -#define COMPRESSION_FORMAT_LZNT1 (0x0002) -#define COMPRESSION_FORMAT_XPRESS (0x0003) -#define COMPRESSION_FORMAT_XPRESS_HUFF (0x0004) -#define COMPRESSION_ENGINE_STANDARD (0x0000) -#define COMPRESSION_ENGINE_MAXIMUM (0x0100) -#define COMPRESSION_ENGINE_HIBER (0x0200) - -#if defined(_DBG_MEMCPY_INLINE_) && !defined(MIDL_PASS) && !defined(_MEMCPY_INLINE_) && !defined(_CRTBLD) -#define _MEMCPY_INLINE_ -FORCEINLINE -PVOID -__cdecl -memcpy_inline ( - _Out_writes_bytes_all_(size) void *dst, - _In_reads_bytes_(size) const void *src, - _In_ size_t size - ) -{ - // - // Make sure the source and destination do not overlap such that the - // move destroys the destination. - // - if (((char *)dst > (char *)src) && - ((char *)dst < ((char *)src + size))) { - __debugbreak(); - } - return memcpy(dst, src, size); -} -#define memcpy memcpy_inline -#endif - - -#define RtlEqualMemory(Destination,Source,Length) (!memcmp((Destination),(Source),(Length))) -#define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length)) -#define RtlCopyMemory(Destination,Source,Length) memcpy((Destination),(Source),(Length)) -#define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length)) -#define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) - - -#if !defined(MIDL_PASS) - -FORCEINLINE -PVOID -RtlSecureZeroMemory( - _Out_writes_bytes_all_(cnt) PVOID ptr, - _In_ SIZE_T cnt - ) -{ - volatile char *vptr = (volatile char *)ptr; - -#if defined(_M_AMD64) - - __stosb((PBYTE )((DWORD64)vptr), 0, cnt); - -#else - - while (cnt) { - -#if !defined(_M_CEE) && (defined(_M_ARM) || defined(_M_ARM64)) - - __iso_volatile_store8(vptr, 0); - -#else - - *vptr = 0; - -#endif - - vptr++; - cnt--; - } - -#endif // _M_AMD64 - - return ptr; -} - -#endif - -// begin_wdm - -#define SEF_DACL_AUTO_INHERIT 0x01 -#define SEF_SACL_AUTO_INHERIT 0x02 -#define SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT 0x04 -#define SEF_AVOID_PRIVILEGE_CHECK 0x08 -#define SEF_AVOID_OWNER_CHECK 0x10 -#define SEF_DEFAULT_OWNER_FROM_PARENT 0x20 -#define SEF_DEFAULT_GROUP_FROM_PARENT 0x40 -#define SEF_MACL_NO_WRITE_UP 0x100 -#define SEF_MACL_NO_READ_UP 0x200 -#define SEF_MACL_NO_EXECUTE_UP 0x400 -#define SEF_AI_USE_EXTRA_PARAMS 0x800 -#define SEF_AVOID_OWNER_RESTRICTION 0x1000 -#define SEF_FORCE_USER_MODE 0x2000 - -#define SEF_MACL_VALID_FLAGS (SEF_MACL_NO_WRITE_UP | \ - SEF_MACL_NO_READ_UP | \ - SEF_MACL_NO_EXECUTE_UP) - -// end_wdm - -typedef struct _MESSAGE_RESOURCE_ENTRY { - WORD Length; - WORD Flags; - BYTE Text[ 1 ]; -} MESSAGE_RESOURCE_ENTRY, *PMESSAGE_RESOURCE_ENTRY; - -#define MESSAGE_RESOURCE_UNICODE 0x0001 - -typedef struct _MESSAGE_RESOURCE_BLOCK { - DWORD LowId; - DWORD HighId; - DWORD OffsetToEntries; -} MESSAGE_RESOURCE_BLOCK, *PMESSAGE_RESOURCE_BLOCK; - -typedef struct _MESSAGE_RESOURCE_DATA { - DWORD NumberOfBlocks; - MESSAGE_RESOURCE_BLOCK Blocks[ 1 ]; -} MESSAGE_RESOURCE_DATA, *PMESSAGE_RESOURCE_DATA; - -typedef struct _OSVERSIONINFOA { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage -} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA; - -typedef struct _OSVERSIONINFOW { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage -} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW; -#ifdef UNICODE -typedef OSVERSIONINFOW OSVERSIONINFO; -typedef POSVERSIONINFOW POSVERSIONINFO; -typedef LPOSVERSIONINFOW LPOSVERSIONINFO; -#else -typedef OSVERSIONINFOA OSVERSIONINFO; -typedef POSVERSIONINFOA POSVERSIONINFO; -typedef LPOSVERSIONINFOA LPOSVERSIONINFO; -#endif // UNICODE - -typedef struct _OSVERSIONINFOEXA { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage - WORD wServicePackMajor; - WORD wServicePackMinor; - WORD wSuiteMask; - BYTE wProductType; - BYTE wReserved; -} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA; -typedef struct _OSVERSIONINFOEXW { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage - WORD wServicePackMajor; - WORD wServicePackMinor; - WORD wSuiteMask; - BYTE wProductType; - BYTE wReserved; -} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW; -#ifdef UNICODE -typedef OSVERSIONINFOEXW OSVERSIONINFOEX; -typedef POSVERSIONINFOEXW POSVERSIONINFOEX; -typedef LPOSVERSIONINFOEXW LPOSVERSIONINFOEX; -#else -typedef OSVERSIONINFOEXA OSVERSIONINFOEX; -typedef POSVERSIONINFOEXA POSVERSIONINFOEX; -typedef LPOSVERSIONINFOEXA LPOSVERSIONINFOEX; -#endif // UNICODE - -// begin_wudfpwdm - -// -// RtlVerifyVersionInfo() conditions -// - -#define VER_EQUAL 1 -#define VER_GREATER 2 -#define VER_GREATER_EQUAL 3 -#define VER_LESS 4 -#define VER_LESS_EQUAL 5 -#define VER_AND 6 -#define VER_OR 7 - -#define VER_CONDITION_MASK 7 -#define VER_NUM_BITS_PER_CONDITION_MASK 3 - -// -// RtlVerifyVersionInfo() type mask bits -// - -#define VER_MINORVERSION 0x0000001 -#define VER_MAJORVERSION 0x0000002 -#define VER_BUILDNUMBER 0x0000004 -#define VER_PLATFORMID 0x0000008 -#define VER_SERVICEPACKMINOR 0x0000010 -#define VER_SERVICEPACKMAJOR 0x0000020 -#define VER_SUITENAME 0x0000040 -#define VER_PRODUCT_TYPE 0x0000080 - -// -// RtlVerifyVersionInfo() os product type values -// - -#define VER_NT_WORKSTATION 0x0000001 -#define VER_NT_DOMAIN_CONTROLLER 0x0000002 -#define VER_NT_SERVER 0x0000003 - -// -// dwPlatformId defines: -// - -#define VER_PLATFORM_WIN32s 0 -#define VER_PLATFORM_WIN32_WINDOWS 1 -#define VER_PLATFORM_WIN32_NT 2 - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -// -// -// VerifyVersionInfo() macro to set the condition mask -// -// For documentation sakes here's the old version of the macro that got -// changed to call an API -// #define VER_SET_CONDITION(_m_,_t_,_c_) _m_=(_m_|(_c_<<(1<<_t_))) -// - -#define VER_SET_CONDITION(_m_,_t_,_c_) \ - ((_m_)=VerSetConditionMask((_m_),(_t_),(_c_))) - -#if !defined(_WINBASE_) && !defined(MIDL_PASS) - -#if (NTDDI_VERSION >= NTDDI_WIN2K) - -NTSYSAPI -ULONGLONG -NTAPI -VerSetConditionMask( - _In_ ULONGLONG ConditionMask, - _In_ DWORD TypeMask, - _In_ BYTE Condition - ); - -#endif - -#endif // !defined(_WINBASE_) && !defined(MIDL_PASS) - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -// - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -// begin_ntddk - -#if (NTDDI_VERSION >= NTDDI_VISTA) - -NTSYSAPI -BOOLEAN -NTAPI -RtlGetProductInfo( - _In_ DWORD OSMajorVersion, - _In_ DWORD OSMinorVersion, - _In_ DWORD SpMajorVersion, - _In_ DWORD SpMinorVersion, - _Out_ PDWORD ReturnedProductType - ); - -#endif - -// end_ntddk - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#define RTL_UMS_VERSION (0x0100) - -typedef enum _RTL_UMS_THREAD_INFO_CLASS { - UmsThreadInvalidInfoClass = 0, - UmsThreadUserContext, - UmsThreadPriority, // Reserved - UmsThreadAffinity, // Reserved - UmsThreadTeb, - UmsThreadIsSuspended, - UmsThreadIsTerminated, - UmsThreadMaxInfoClass -} RTL_UMS_THREAD_INFO_CLASS, *PRTL_UMS_THREAD_INFO_CLASS; - -typedef enum _RTL_UMS_SCHEDULER_REASON { - UmsSchedulerStartup = 0, - UmsSchedulerThreadBlocked, - UmsSchedulerThreadYield, -} RTL_UMS_SCHEDULER_REASON, *PRTL_UMS_SCHEDULER_REASON; - -typedef -_Function_class_(RTL_UMS_SCHEDULER_ENTRY_POINT) -VOID -NTAPI -RTL_UMS_SCHEDULER_ENTRY_POINT( - _In_ RTL_UMS_SCHEDULER_REASON Reason, - _In_ ULONG_PTR ActivationPayload, - _In_ PVOID SchedulerParam - ); - -typedef RTL_UMS_SCHEDULER_ENTRY_POINT *PRTL_UMS_SCHEDULER_ENTRY_POINT; - - -#if !defined(IS_VALIDATION_ENABLED) - -#if (NTDDI_VERSION >= NTDDI_WIN8) - -// -// Validation runlevel helper macro: checks if a particular level L enables the -// validation class C. -// -// Returns a non-zero scalar if class C is enabled, and zero otherwise. -// -#define IS_VALIDATION_ENABLED(C,L) ((L) & (C)) - -// -// Validation classes are broken into: -// 8 predefined validation classes, spanning bits 0 to 7 of the level value -// 24 custom-defined validation classes, spanning bits 8 to 31 -// -#define VRL_PREDEFINED_CLASS_BEGIN (1 << 0) -#define VRL_CUSTOM_CLASS_BEGIN (1 << 8) - -// -// The following are predefined validation classes. -// -#define VRL_CLASS_CONSISTENCY (VRL_PREDEFINED_CLASS_BEGIN << 0) - -// -// Do not ignore kernel breaks when kernel debugging is disabled (debug builds only) -// -#define VRL_ENABLE_KERNEL_BREAKS (1 << 31) - -#endif // (NTDDI_VERSION >= NTDDI_WIN8) - -#endif // !defined(IS_VALIDATION_ENABLED) - -#if (NTDDI_VERSION >= NTDDI_WIN8) - -// -// RtlCheckTokenMembership flags. -// - -#define CTMF_INCLUDE_APPCONTAINER 0x00000001UL -#define CTMF_INCLUDE_LPAC 0x00000002UL -#define CTMF_VALID_FLAGS (CTMF_INCLUDE_APPCONTAINER | CTMF_INCLUDE_LPAC) - -#endif // (NTDDI_VERSION >= NTDDI_WIN8) - - -#if (NTDDI_VERSION >= NTDDI_WIN8) - -// end_ntosp - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - -// begin_ntosp - -// -// Crc32 and Crc64 routines that use standardized algorithms -// - -NTSYSAPI -DWORD -NTAPI -RtlCrc32( - _In_reads_bytes_(Size) const void *Buffer, - _In_ size_t Size, - _In_ DWORD InitialCrc - ); - -NTSYSAPI -ULONGLONG -NTAPI -RtlCrc64( - _In_reads_bytes_(Size) const void *Buffer, - _In_ size_t Size, - _In_ ULONGLONG InitialCrc - ); - -// end_ntosp - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -// begin_ntosp - -#endif // (NTDDI_VERSION >= NTDDI_WIN8) - - -#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) -// -// API to detect what type of OS Deployment this is. Current valid values -// are listed below -// - -// -// Valid OsDeployment values that can be returned -// - -typedef enum _OS_DEPLOYEMENT_STATE_VALUES { - OS_DEPLOYMENT_STANDARD = 1, - OS_DEPLOYMENT_COMPACT -} OS_DEPLOYEMENT_STATE_VALUES; - -NTSYSAPI -OS_DEPLOYEMENT_STATE_VALUES -NTAPI -RtlOsDeploymentState( - _In_ DWORD Flags /* No flags currently defined, passed 0 */ - ); - - -#endif // NTDDI_VERSION >= NTDDI_WINTHRESHOLD - - -// -// Flush routines for DAX mapped files -// - -#if (NTDDI_VERSION >= NTDDI_WIN10_RS2) - -typedef struct _NV_MEMORY_RANGE { - VOID *BaseAddress; - SIZE_T Length; -} NV_MEMORY_RANGE, *PNV_MEMORY_RANGE; - -// -// Flags for RtlFlushNonVolatileMemory and RtlFlushNonVolatileMemoryRanges -// - -#define FLUSH_NV_MEMORY_IN_FLAG_NO_DRAIN (0x00000001) - -// -// Default token is used to call the flush and drain routines without the -// RtlGetNonVolatileToken call, for callers who know the details about the -// region they are flushing. -// - -#define FLUSH_NV_MEMORY_DEFAULT_TOKEN (ULONG_PTR)(-1) - -// -// Flags for RtlWriteNonVolatileMemory -// -// WRITE_NV_MEMORY_FLAG_FLUSH - The destination range is flushed -// after writing the data from the source. By default the flush -// is followed by a drain, unless WRITE_NV_MEMORY_FLAG_NO_DRAIN -// is passed. This flag makes sure that the data is durable even -// in case of system powerloss. -// -// WRITE_NV_MEMORY_FLAG_NON_TEMPORAL - Performs a non-temporal -// copy when available. Non-temporal means that data caching -// is not required. Few notes: -// - Some processors do not support non-temporal copy for range -// smaller than address bus size, and issues regular copy. In -// such case RtlWriteNonVolatileMemory peforms regular copy -// followed by flush and drain. -// - Some processors may ignore non-temporal copy altogether. -// RtlWriteNonVolatileMemory doesn't replace it with flush -// and drain in that case. -// -// WRITE_NV_MEMORY_FLAG_PERSIST - Makes sure that the write are -// persisted either by flushing or using non-temporal writes. -// The caller can make no assumptions on what's used. Typically -// the approach that's less costly to persist the write is used. -// This flag makes sure that the data is durable even in case of -// system powerloss. WRITE_NV_MEMORY_FLAG_NO_DRAIN is ignored -// when WRITE_NV_MEMORY_FLAG_PERSIST is used. -// -// WRITE_NV_MEMORY_FLAG_NO_DRAIN - Tells the routine to not wait -// for the flush to complete. -// - -#define WRITE_NV_MEMORY_FLAG_FLUSH (0x00000001) -#define WRITE_NV_MEMORY_FLAG_NON_TEMPORAL (0x00000002) -#define WRITE_NV_MEMORY_FLAG_PERSIST (WRITE_NV_MEMORY_FLAG_FLUSH \ - | WRITE_NV_MEMORY_FLAG_NON_TEMPORAL) -#define WRITE_NV_MEMORY_FLAG_NO_DRAIN (0x00000100) - -// -// Flags for RtlFillNonVolatileMemory -// -// Let the flags be available in pre 19H1 too, to ease callers -// of this function that use MmGetSystemRoutineAddress. -// -// FILL_NV_MEMORY_FLAG_FLUSH - The destination range is flushed -// after setting the given value into it. By default the flush -// is followed by a drain, unless FILL_NV_MEMORY_FLAG_NO_DRAIN -// is passed. This flag makes sure that the data is durable -// even in case of system powerloss. -// -// FILL_NV_MEMORY_FLAG_NON_TEMPORAL - Performs a non-temporal -// memset when available. Non-temporal means that data caching -// is not required. Few notes: -// - Some processors do not support non-temporal moves for range -// smaller than address bus size, and issues regular moves. In -// such case RtlSetNonVolatileMemory peforms regular memset -// followed by flush and drain. -// - Some processors may ignore non-temporal moves altogether. -// RtlSetNonVolatileMemory doesn't replace it with flush and -// drain in that case. However, we do replace it with flush -// and drain if Windows doesn't haven an implementation for -// a given architecture (say ARM64). -// -// FILL_NV_MEMORY_FLAG_PERSIST - Makes sure that the memset is -// persisted either by flushing or using non-temporal moves. -// The caller can make no assumptions on what's used. Typically -// the approach that's less costly to persist the data is used. -// This flag makes sure that the data is durable even in case of -// system powerloss. FILL_NV_MEMORY_FLAG_NO_DRAIN is ignored -// when FILL_NV_MEMORY_FLAG_PERSIST is used. -// -// FILL_NV_MEMORY_FLAG_NO_DRAIN - Tells the routine to not wait -// for the flush to complete. This is honored only when the -// caller explicitly passed FILL_NV_MEMORY_FLAG_FLUSH and isn't -// honored for FILL_NV_MEMORY_FLAG_PERSIST or *_NON_TERMPORAL. -// - -#define FILL_NV_MEMORY_FLAG_FLUSH (0x00000001) -#define FILL_NV_MEMORY_FLAG_NON_TEMPORAL (0x00000002) -#define FILL_NV_MEMORY_FLAG_PERSIST (FILL_NV_MEMORY_FLAG_FLUSH \ - | FILL_NV_MEMORY_FLAG_NON_TEMPORAL) -#define FILL_NV_MEMORY_FLAG_NO_DRAIN (0x00000100) - -#if defined(_WIN64) - -_IRQL_requires_max_(APC_LEVEL) -NTSYSAPI -DWORD -NTAPI -RtlGetNonVolatileToken ( - _In_reads_bytes_(Size) PVOID NvBuffer, - _In_ SIZE_T Size, - _Outptr_ PVOID *NvToken - ); - -_IRQL_requires_max_(DPC_LEVEL) -NTSYSAPI -DWORD -NTAPI -RtlFreeNonVolatileToken ( - _In_ PVOID NvToken - ); - -_IRQL_requires_max_(DPC_LEVEL) -NTSYSAPI -DWORD -NTAPI -RtlFlushNonVolatileMemory ( - _In_ PVOID NvToken, - _In_reads_bytes_(Size) PVOID NvBuffer, - _In_ SIZE_T Size, - _In_ DWORD Flags - ); - -_IRQL_requires_max_(DPC_LEVEL) -NTSYSAPI -DWORD -NTAPI -RtlDrainNonVolatileFlush ( - _In_ PVOID NvToken - ); - -_IRQL_requires_max_(DPC_LEVEL) -NTSYSAPI -DWORD -NTAPI -RtlWriteNonVolatileMemory ( - _In_ PVOID NvToken, - _Out_writes_bytes_(Size) VOID UNALIGNED *NvDestination, - _In_reads_bytes_(Size) CONST VOID UNALIGNED *Source, - _In_ SIZE_T Size, - _In_ DWORD Flags - ); - -#if (NTDDI_VERSION >= NTDDI_WIN10_19H1) - -_IRQL_requires_max_(DPC_LEVEL) -NTSYSAPI -DWORD -NTAPI -RtlFillNonVolatileMemory ( - _In_ PVOID NvToken, - _Out_writes_bytes_(Size) VOID UNALIGNED *NvDestination, - _In_ SIZE_T Size, - _In_ CONST BYTE Value, - _In_ DWORD Flags - ); - -#endif // (NTDDI_VERSION >= NTDDI_WIN10_19H1) - -_IRQL_requires_max_(DPC_LEVEL) -NTSYSAPI -DWORD -NTAPI -RtlFlushNonVolatileMemoryRanges ( - _In_ PVOID NvToken, - _In_reads_(NumRanges) PNV_MEMORY_RANGE NvRanges, - _In_ SIZE_T NumRanges, - _In_ DWORD Flags - ); - -#else // defined(_WIN64) - -#define RtlGetNonVolatileToken(B,S,T) \ - (ASSERT(!"Call not expected in 32-bit architecture"), STATUS_NOT_IMPLEMENTED) - -#define RtlFreeNonVolatileToken(T) \ - (ASSERT(!"Call not expected in 32-bit architecture"), STATUS_NOT_IMPLEMENTED) - -#define RtlFlushNonVolatileMemory(T,B,S,F) \ - (ASSERT(!"Call not expected in 32-bit architecture"), STATUS_NOT_IMPLEMENTED) - -#define RtlDrainNonVolatileFlush(T) \ - (ASSERT(!"Call not expected in 32-bit architecture"), STATUS_NOT_IMPLEMENTED) - -#define RtlWriteNonVolatileMemory(T,D,S,L,F) \ - (ASSERT(!"Call not expected in 32-bit architecture"), STATUS_NOT_IMPLEMENTED) - -#if (NTDDI_VERSION >= NTDDI_WIN10_19H1) - -#define RtlFillNonVolatileMemory(T,B,S,V,F) \ - (ASSERT(!"Call not expected in 32-bit architecture"), STATUS_NOT_IMPLEMENTED) - -#endif // (NTDDI_VERSION >= NTDDI_WIN10_19H1) - -#define RtlFlushNonVolatileMemoryRanges(T,R,N,F) \ - (ASSERT(!"Call not expected in 32-bit architecture"), STATUS_NOT_IMPLEMENTED) - -#endif // defined(_WIN64) - -#endif // (NTDDI_VERSION >= NTDDI_RS2) - - -// -// Correlation Vector Routines. -// - -#if (NTDDI_VERSION >= NTDDI_WIN10_RS2) - - -#define RTL_CORRELATION_VECTOR_STRING_LENGTH 129 -#define RTL_CORRELATION_VECTOR_VERSION_1 ((CHAR)1) -#define RTL_CORRELATION_VECTOR_VERSION_2 ((CHAR)2) -#define RTL_CORRELATION_VECTOR_VERSION_CURRENT RTL_CORRELATION_VECTOR_VERSION_2 - -#define RTL_CORRELATION_VECTOR_V1_PREFIX_LENGTH (16) -#define RTL_CORRELATION_VECTOR_V1_LENGTH (64) - -#define RTL_CORRELATION_VECTOR_V2_PREFIX_LENGTH (22) -#define RTL_CORRELATION_VECTOR_V2_LENGTH (128) - -typedef struct CORRELATION_VECTOR { - CHAR Version; - CHAR Vector[RTL_CORRELATION_VECTOR_STRING_LENGTH]; -} CORRELATION_VECTOR; - -typedef CORRELATION_VECTOR *PCORRELATION_VECTOR; - -#define TraceLoggingCORRELATION_VECTOR(cv) TraceLoggingString((cv).Vector, "__TlgCV__") - -NTSYSAPI -DWORD -NTAPI -RtlInitializeCorrelationVector( - _Out_ PCORRELATION_VECTOR CorrelationVector, - _In_ int Version, - _In_opt_ const GUID * Guid - ); - - -NTSYSAPI -DWORD -NTAPI -RtlIncrementCorrelationVector( - _Inout_ PCORRELATION_VECTOR CorrelationVector - ); - -NTSYSAPI -DWORD -NTAPI -RtlExtendCorrelationVector( - _Inout_ PCORRELATION_VECTOR CorrelationVector - ); - -NTSYSAPI -DWORD -NTAPI -RtlValidateCorrelationVector( - _In_ PCORRELATION_VECTOR Vector - ); - -#endif // NTDDI_VERSION >= NTDDI_RS2 - - -#if (NTDDI_VERSION >= NTDDI_WIN10_RS4) - -typedef struct _CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG { - // - // Size of the structure in bytes - // - DWORD Size; - - // - // Guid used to identify background task to trigger - // - PCWSTR TriggerId; - -} CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG, *PCUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG; - -#if !defined(MIDL_PASS) -FORCEINLINE -VOID -CUSTOM_SYSTEM_EVENT_TRIGGER_INIT( - _Out_ PCUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG Config, - _In_opt_ PCWSTR TriggerId - ) -{ - RtlZeroMemory(Config, sizeof(CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG)); - - Config->Size = sizeof(CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG); - Config->TriggerId = TriggerId; -} -#endif // !defined(MIDL_PASS) - -_Must_inspect_result_ -_IRQL_requires_max_(PASSIVE_LEVEL) -DWORD -NTAPI -RtlRaiseCustomSystemEventTrigger( - _In_ PCUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG TriggerConfig - ); - -#endif // NTDDI_VERSION >= NTDDI_WIN10_RS4 - - -// -// Support for process policy settings embedded into executable image. -// - -#define IMAGE_POLICY_METADATA_VERSION 1 -#define IMAGE_POLICY_SECTION_NAME ".tPolicy" -#define IMAGE_POLICY_METADATA_NAME __ImagePolicyMetadata - -typedef enum _IMAGE_POLICY_ENTRY_TYPE { - ImagePolicyEntryTypeNone = 0, - ImagePolicyEntryTypeBool, - ImagePolicyEntryTypeInt8, - ImagePolicyEntryTypeUInt8, - ImagePolicyEntryTypeInt16, - ImagePolicyEntryTypeUInt16, - ImagePolicyEntryTypeInt32, - ImagePolicyEntryTypeUInt32, - ImagePolicyEntryTypeInt64, - ImagePolicyEntryTypeUInt64, - ImagePolicyEntryTypeAnsiString, - ImagePolicyEntryTypeUnicodeString, - ImagePolicyEntryTypeOverride, - ImagePolicyEntryTypeMaximum -} IMAGE_POLICY_ENTRY_TYPE; - -typedef enum _IMAGE_POLICY_ID { - ImagePolicyIdNone = 0, - ImagePolicyIdEtw, - ImagePolicyIdDebug, - ImagePolicyIdCrashDump, - ImagePolicyIdCrashDumpKey, - ImagePolicyIdCrashDumpKeyGuid, - ImagePolicyIdParentSd, - ImagePolicyIdParentSdRev, - ImagePolicyIdSvn, - ImagePolicyIdDeviceId, - ImagePolicyIdCapability, - ImagePolicyIdScenarioId, - ImagePolicyIdMaximum -} IMAGE_POLICY_ID; - -typedef struct _IMAGE_POLICY_ENTRY { - IMAGE_POLICY_ENTRY_TYPE Type; - IMAGE_POLICY_ID PolicyId; - union { - const VOID* None; - BOOLEAN BoolValue; - INT8 Int8Value; - UINT8 UInt8Value; - INT16 Int16Value; - UINT16 UInt16Value; - INT32 Int32Value; - UINT32 UInt32Value; - INT64 Int64Value; - UINT64 UInt64Value; - PCSTR AnsiStringValue; - PCWSTR UnicodeStringValue; - } u; -} IMAGE_POLICY_ENTRY; -typedef const IMAGE_POLICY_ENTRY* PCIMAGE_POLICY_ENTRY; - -#pragma warning(push) -#pragma warning(disable:4200) // zero-sized array in struct/union -typedef struct _IMAGE_POLICY_METADATA { - BYTE Version; - BYTE Reserved0[7]; - ULONGLONG ApplicationId; - IMAGE_POLICY_ENTRY Policies[]; -} IMAGE_POLICY_METADATA; -typedef const IMAGE_POLICY_METADATA* PCIMAGE_POLICY_METADATA; -#pragma warning(pop) - -#define IMAGE_POLICY_START(_ApplicationId_) \ -__pragma(const_seg(push, IMAGE_POLICY_SECTION_NAME)); \ -EXTERN_C __declspec(dllexport) const \ -IMAGE_POLICY_METADATA IMAGE_POLICY_METADATA_NAME = { \ - IMAGE_POLICY_METADATA_VERSION, \ - {0}, \ - _ApplicationId_, \ - { - -#define IMAGE_POLICY_END() \ - {ImagePolicyEntryTypeNone, ImagePolicyIdNone, NULL} \ - } \ -}; \ -__pragma(const_seg(pop)) - -#define IMAGE_POLICY_BOOL(_PolicyId_, _Value_) \ - {ImagePolicyEntryTypeBool, _PolicyId_, (const VOID*)_Value_}, - -#define IMAGE_POLICY_INT8(_PolicyId_, _Value_) \ - {ImagePolicyEntryTypeInt8, _PolicyId_, (const VOID*)_Value_}, - -#define IMAGE_POLICY_UINT8(_PolicyId_, _Value_) \ - {ImagePolicyEntryTypeUInt8, _PolicyId_, (const VOID*)_Value_}, - -#define IMAGE_POLICY_INT16(_PolicyId_, _Value_) \ - {ImagePolicyEntryTypeInt16, _PolicyId_, (const VOID*)_Value_}, - -#define IMAGE_POLICY_UINT16(_PolicyId_, _Value_) \ - {ImagePolicyEntryTypeUInt16, _PolicyId_, (const VOID*)_Value_}, - -#define IMAGE_POLICY_INT32(_PolicyId_, _Value_) \ - {ImagePolicyEntryTypeInt32, _PolicyId_, (const VOID*)_Value_}, - -#define IMAGE_POLICY_UINT32(_PolicyId_, _Value_) \ - {ImagePolicyEntryTypeUInt32, _PolicyId_, (const VOID*)_Value_}, - -#define IMAGE_POLICY_INT64(_PolicyId_, _Value_) \ - {ImagePolicyEntryTypeInt64, _PolicyId_, (const VOID*)_Value_}, - -#define IMAGE_POLICY_UINT64(_PolicyId_, _Value_) \ - {ImagePolicyEntryTypeUInt64, _PolicyId_, (const VOID*)_Value_}, - -#define IMAGE_POLICY_ANSI_STRING(_PolicyId_, _Value_) \ - {ImagePolicyEntryTypeAnsiString, _PolicyId_, _Value_}, - -#define IMAGE_POLICY_UNICODE_STRING(_PolicyId_, _Value_) \ - {ImagePolicyEntryTypeUnicodeString, _PolicyId_, _Value_}, - -#define IMAGE_POLICY_OVERRIDE(_PolicyId_) \ - {ImagePolicyEntryTypeOverride, _PolicyId_, 0}, - - -typedef struct _RTL_CRITICAL_SECTION_DEBUG { - WORD Type; - WORD CreatorBackTraceIndex; - struct _RTL_CRITICAL_SECTION *CriticalSection; - LIST_ENTRY ProcessLocksList; - DWORD EntryCount; - DWORD ContentionCount; - DWORD Flags; - WORD CreatorBackTraceIndexHigh; - WORD SpareWORD ; -} RTL_CRITICAL_SECTION_DEBUG, *PRTL_CRITICAL_SECTION_DEBUG, RTL_RESOURCE_DEBUG, *PRTL_RESOURCE_DEBUG; - -// -// These flags define the upper byte of the critical section SpinCount field -// -#define RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO 0x01000000 -#define RTL_CRITICAL_SECTION_FLAG_DYNAMIC_SPIN 0x02000000 -#define RTL_CRITICAL_SECTION_FLAG_STATIC_INIT 0x04000000 -#define RTL_CRITICAL_SECTION_FLAG_RESOURCE_TYPE 0x08000000 -#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO 0x10000000 -#define RTL_CRITICAL_SECTION_ALL_FLAG_BITS 0xFF000000 -#define RTL_CRITICAL_SECTION_FLAG_RESERVED (RTL_CRITICAL_SECTION_ALL_FLAG_BITS & (~(RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO | RTL_CRITICAL_SECTION_FLAG_DYNAMIC_SPIN | RTL_CRITICAL_SECTION_FLAG_STATIC_INIT | RTL_CRITICAL_SECTION_FLAG_RESOURCE_TYPE | RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO))) - -// -// These flags define possible values stored in the Flags field of a critsec debuginfo. -// -#define RTL_CRITICAL_SECTION_DEBUG_FLAG_STATIC_INIT 0x00000001 - -#pragma pack(push, 8) - -typedef struct _RTL_CRITICAL_SECTION { - PRTL_CRITICAL_SECTION_DEBUG DebugInfo; - - // - // The following three fields control entering and exiting the critical - // section for the resource - // - - LONG LockCount; - LONG RecursionCount; - HANDLE OwningThread; // from the thread's ClientId->UniqueThread - HANDLE LockSemaphore; - ULONG_PTR SpinCount; // force size on 64-bit systems when packed -} RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION; - -#pragma pack(pop) - -typedef struct _RTL_SRWLOCK { - PVOID Ptr; -} RTL_SRWLOCK, *PRTL_SRWLOCK; -#define RTL_SRWLOCK_INIT {0} -typedef struct _RTL_CONDITION_VARIABLE { - PVOID Ptr; -} RTL_CONDITION_VARIABLE, *PRTL_CONDITION_VARIABLE; -#define RTL_CONDITION_VARIABLE_INIT {0} -#define RTL_CONDITION_VARIABLE_LOCKMODE_SHARED 0x1 -typedef -VOID -(NTAPI *PAPCFUNC)( - _In_ ULONG_PTR Parameter - ); -typedef LONG (NTAPI *PVECTORED_EXCEPTION_HANDLER)( - struct _EXCEPTION_POINTERS *ExceptionInfo - ); - -typedef enum _HEAP_INFORMATION_CLASS { - - HeapCompatibilityInformation = 0, - HeapEnableTerminationOnCorruption = 1 - - -#if ((NTDDI_VERSION > NTDDI_WINBLUE) || \ - (NTDDI_VERSION == NTDDI_WINBLUE && defined(WINBLUE_KBSPRING14))) - , - - HeapOptimizeResources = 3 - -#endif - - -} HEAP_INFORMATION_CLASS; - -#if ((NTDDI_VERSION > NTDDI_WINBLUE) || \ - (NTDDI_VERSION == NTDDI_WINBLUE && defined(WINBLUE_KBSPRING14))) - -#define HEAP_OPTIMIZE_RESOURCES_CURRENT_VERSION 1 - -typedef struct _HEAP_OPTIMIZE_RESOURCES_INFORMATION { - DWORD Version; - DWORD Flags; -} HEAP_OPTIMIZE_RESOURCES_INFORMATION, *PHEAP_OPTIMIZE_RESOURCES_INFORMATION; - -#endif - - -#define WT_EXECUTEDEFAULT 0x00000000 -#define WT_EXECUTEINIOTHREAD 0x00000001 -#define WT_EXECUTEINUITHREAD 0x00000002 -#define WT_EXECUTEINWAITTHREAD 0x00000004 -#define WT_EXECUTEONLYONCE 0x00000008 -#define WT_EXECUTEINTIMERTHREAD 0x00000020 -#define WT_EXECUTELONGFUNCTION 0x00000010 -#define WT_EXECUTEINPERSISTENTIOTHREAD 0x00000040 -#define WT_EXECUTEINPERSISTENTTHREAD 0x00000080 -#define WT_TRANSFER_IMPERSONATION 0x00000100 -#define WT_SET_MAX_THREADPOOL_THREADS(Flags, Limit) ((Flags) |= (Limit)<<16) -typedef VOID (NTAPI * WAITORTIMERCALLBACKFUNC) (PVOID, BOOLEAN ); -typedef VOID (NTAPI * WORKERCALLBACKFUNC) (PVOID ); -typedef VOID (NTAPI * APC_CALLBACK_FUNCTION) (DWORD , PVOID, PVOID); -typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK; -typedef -VOID -(NTAPI *PFLS_CALLBACK_FUNCTION) ( - IN PVOID lpFlsData - ); - -typedef -BOOLEAN -(NTAPI *PSECURE_MEMORY_CACHE_CALLBACK) ( - _In_reads_bytes_(Range) PVOID Addr, - _In_ SIZE_T Range - ); - -#define WT_EXECUTEINLONGTHREAD 0x00000010 -#define WT_EXECUTEDELETEWAIT 0x00000008 - -typedef enum _ACTIVATION_CONTEXT_INFO_CLASS { - ActivationContextBasicInformation = 1, - ActivationContextDetailedInformation = 2, - AssemblyDetailedInformationInActivationContext = 3, - FileInformationInAssemblyOfAssemblyInActivationContext = 4, - RunlevelInformationInActivationContext = 5, - CompatibilityInformationInActivationContext = 6, - ActivationContextManifestResourceName = 7, - MaxActivationContextInfoClass, - - // - // compatibility with old names - // - AssemblyDetailedInformationInActivationContxt = 3, - FileInformationInAssemblyOfAssemblyInActivationContxt = 4 -} ACTIVATION_CONTEXT_INFO_CLASS; - -#define ACTIVATIONCONTEXTINFOCLASS ACTIVATION_CONTEXT_INFO_CLASS - - -typedef struct _ACTIVATION_CONTEXT_QUERY_INDEX { - DWORD ulAssemblyIndex; - DWORD ulFileIndexInAssembly; -} ACTIVATION_CONTEXT_QUERY_INDEX, * PACTIVATION_CONTEXT_QUERY_INDEX; - -typedef const struct _ACTIVATION_CONTEXT_QUERY_INDEX * PCACTIVATION_CONTEXT_QUERY_INDEX; - - -#define ACTIVATION_CONTEXT_PATH_TYPE_NONE (1) -#define ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE (2) -#define ACTIVATION_CONTEXT_PATH_TYPE_URL (3) -#define ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF (4) - -typedef struct _ASSEMBLY_FILE_DETAILED_INFORMATION { - DWORD ulFlags; - DWORD ulFilenameLength; - DWORD ulPathLength; - - PCWSTR lpFileName; - PCWSTR lpFilePath; -} ASSEMBLY_FILE_DETAILED_INFORMATION, *PASSEMBLY_FILE_DETAILED_INFORMATION; -typedef const ASSEMBLY_FILE_DETAILED_INFORMATION *PCASSEMBLY_FILE_DETAILED_INFORMATION; - -// -// compatibility with old names -// The new names use "file" consistently. -// -#define _ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION _ASSEMBLY_FILE_DETAILED_INFORMATION -#define ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION ASSEMBLY_FILE_DETAILED_INFORMATION -#define PASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION PASSEMBLY_FILE_DETAILED_INFORMATION -#define PCASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION PCASSEMBLY_FILE_DETAILED_INFORMATION - -typedef struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { - DWORD ulFlags; - DWORD ulEncodedAssemblyIdentityLength; // in bytes - DWORD ulManifestPathType; // ACTIVATION_CONTEXT_PATH_TYPE_* - DWORD ulManifestPathLength; // in bytes - LARGE_INTEGER liManifestLastWriteTime; // FILETIME - DWORD ulPolicyPathType; // ACTIVATION_CONTEXT_PATH_TYPE_* - DWORD ulPolicyPathLength; // in bytes - LARGE_INTEGER liPolicyLastWriteTime; // FILETIME - DWORD ulMetadataSatelliteRosterIndex; - - DWORD ulManifestVersionMajor; // 1 - DWORD ulManifestVersionMinor; // 0 - DWORD ulPolicyVersionMajor; // 0 - DWORD ulPolicyVersionMinor; // 0 - DWORD ulAssemblyDirectoryNameLength; // in bytes - - PCWSTR lpAssemblyEncodedAssemblyIdentity; - PCWSTR lpAssemblyManifestPath; - PCWSTR lpAssemblyPolicyPath; - PCWSTR lpAssemblyDirectoryName; - - DWORD ulFileCount; -} ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION, * PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; - -typedef const struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION * PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION ; - -typedef enum -{ - ACTCTX_RUN_LEVEL_UNSPECIFIED = 0, - ACTCTX_RUN_LEVEL_AS_INVOKER, - ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE, - ACTCTX_RUN_LEVEL_REQUIRE_ADMIN, - ACTCTX_RUN_LEVEL_NUMBERS -} ACTCTX_REQUESTED_RUN_LEVEL; - -typedef struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION { - DWORD ulFlags; - ACTCTX_REQUESTED_RUN_LEVEL RunLevel; - DWORD UiAccess; -} ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION, * PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION; - -typedef const struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION * PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION ; - -typedef enum -{ - ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN = 0, - ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS, - ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MITIGATION, - ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MAXVERSIONTESTED -} ACTCTX_COMPATIBILITY_ELEMENT_TYPE; - -typedef struct _COMPATIBILITY_CONTEXT_ELEMENT { - GUID Id; - ACTCTX_COMPATIBILITY_ELEMENT_TYPE Type; - ULONGLONG MaxVersionTested; -} COMPATIBILITY_CONTEXT_ELEMENT, *PCOMPATIBILITY_CONTEXT_ELEMENT; - -typedef const struct _COMPATIBILITY_CONTEXT_ELEMENT *PCCOMPATIBILITY_CONTEXT_ELEMENT; - -#ifdef _MSC_EXTENSIONS - -#if _MSC_VER >= 1200 -#pragma warning(push) -#pragma warning(disable:4200) // zero length array -#endif - -typedef struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION { - DWORD ElementCount; - COMPATIBILITY_CONTEXT_ELEMENT Elements[]; -} ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION, * PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION; - -#if _MSC_VER >= 1200 -#pragma warning(pop) -#endif - -typedef const struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION * PCACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION; - -#endif - -typedef struct _SUPPORTED_OS_INFO { - WORD MajorVersion; - WORD MinorVersion; -} SUPPORTED_OS_INFO, *PSUPPORTED_OS_INFO; - -typedef struct _MAXVERSIONTESTED_INFO { - ULONGLONG MaxVersionTested; -} MAXVERSIONTESTED_INFO, *PMAXVERSIONTESTED_INFO; - -typedef struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION { - DWORD dwFlags; - DWORD ulFormatVersion; - DWORD ulAssemblyCount; - DWORD ulRootManifestPathType; - DWORD ulRootManifestPathChars; - DWORD ulRootConfigurationPathType; - DWORD ulRootConfigurationPathChars; - DWORD ulAppDirPathType; - DWORD ulAppDirPathChars; - PCWSTR lpRootManifestPath; - PCWSTR lpRootConfigurationPath; - PCWSTR lpAppDirPath; -} ACTIVATION_CONTEXT_DETAILED_INFORMATION, *PACTIVATION_CONTEXT_DETAILED_INFORMATION; - -typedef const struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION *PCACTIVATION_CONTEXT_DETAILED_INFORMATION; - - -#define CREATE_BOUNDARY_DESCRIPTOR_ADD_APPCONTAINER_SID 0x1 - -typedef struct _HARDWARE_COUNTER_DATA { - HARDWARE_COUNTER_TYPE Type; - DWORD Reserved; - DWORD64 Value; -} HARDWARE_COUNTER_DATA, *PHARDWARE_COUNTER_DATA; - -#define PERFORMANCE_DATA_VERSION 1 - -typedef struct _PERFORMANCE_DATA { - WORD Size; - BYTE Version; - BYTE HwCountersCount; - DWORD ContextSwitchCount; - DWORD64 WaitReasonBitMap; - DWORD64 CycleTime; - DWORD RetryCount; - DWORD Reserved; - HARDWARE_COUNTER_DATA HwCounters[MAX_HW_COUNTERS]; -} PERFORMANCE_DATA, *PPERFORMANCE_DATA; - -#define READ_THREAD_PROFILING_FLAG_DISPATCHING 0x00000001 -#define READ_THREAD_PROFILING_FLAG_HARDWARE_COUNTERS 0x00000002 - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) - -#define UNIFIEDBUILDREVISION_KEY L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion" -#define UNIFIEDBUILDREVISION_VALUE L"UBR" -#define UNIFIEDBUILDREVISION_MIN 0x00000000 - -#define DEVICEFAMILYDEVICEFORM_KEY L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\OEM" -#define DEVICEFAMILYDEVICEFORM_VALUE L"DeviceForm" - -#define DEVICEFAMILYINFOENUM_UAP 0x00000000 -#define DEVICEFAMILYINFOENUM_WINDOWS_8X 0x00000001 -#define DEVICEFAMILYINFOENUM_WINDOWS_PHONE_8X 0x00000002 -#define DEVICEFAMILYINFOENUM_DESKTOP 0x00000003 -#define DEVICEFAMILYINFOENUM_MOBILE 0x00000004 -#define DEVICEFAMILYINFOENUM_XBOX 0x00000005 -#define DEVICEFAMILYINFOENUM_TEAM 0x00000006 -#define DEVICEFAMILYINFOENUM_IOT 0x00000007 -#define DEVICEFAMILYINFOENUM_IOT_HEADLESS 0x00000008 -#define DEVICEFAMILYINFOENUM_SERVER 0x00000009 -#define DEVICEFAMILYINFOENUM_HOLOGRAPHIC 0x0000000A -#define DEVICEFAMILYINFOENUM_XBOXSRA 0x0000000B -#define DEVICEFAMILYINFOENUM_XBOXERA 0x0000000C -#define DEVICEFAMILYINFOENUM_SERVER_NANO 0x0000000D -#define DEVICEFAMILYINFOENUM_8828080 0x0000000E -#define DEVICEFAMILYINFOENUM_7067329 0x0000000F -#define DEVICEFAMILYINFOENUM_WINDOWS_CORE 0x00000010 -#define DEVICEFAMILYINFOENUM_WINDOWS_CORE_HEADLESS 0x00000011 - -#define DEVICEFAMILYINFOENUM_MAX 0x00000011 - -#define DEVICEFAMILYDEVICEFORM_UNKNOWN 0x00000000 -#define DEVICEFAMILYDEVICEFORM_PHONE 0x00000001 -#define DEVICEFAMILYDEVICEFORM_TABLET 0x00000002 -#define DEVICEFAMILYDEVICEFORM_DESKTOP 0x00000003 -#define DEVICEFAMILYDEVICEFORM_NOTEBOOK 0x00000004 -#define DEVICEFAMILYDEVICEFORM_CONVERTIBLE 0x00000005 -#define DEVICEFAMILYDEVICEFORM_DETACHABLE 0x00000006 -#define DEVICEFAMILYDEVICEFORM_ALLINONE 0x00000007 -#define DEVICEFAMILYDEVICEFORM_STICKPC 0x00000008 -#define DEVICEFAMILYDEVICEFORM_PUCK 0x00000009 -#define DEVICEFAMILYDEVICEFORM_LARGESCREEN 0x0000000A -#define DEVICEFAMILYDEVICEFORM_HMD 0x0000000B -#define DEVICEFAMILYDEVICEFORM_INDUSTRY_HANDHELD 0x0000000C -#define DEVICEFAMILYDEVICEFORM_INDUSTRY_TABLET 0x0000000D -#define DEVICEFAMILYDEVICEFORM_BANKING 0x0000000E -#define DEVICEFAMILYDEVICEFORM_BUILDING_AUTOMATION 0x0000000F -#define DEVICEFAMILYDEVICEFORM_DIGITAL_SIGNAGE 0x00000010 -#define DEVICEFAMILYDEVICEFORM_GAMING 0x00000011 -#define DEVICEFAMILYDEVICEFORM_HOME_AUTOMATION 0x00000012 -#define DEVICEFAMILYDEVICEFORM_INDUSTRIAL_AUTOMATION 0x00000013 -#define DEVICEFAMILYDEVICEFORM_KIOSK 0x00000014 -#define DEVICEFAMILYDEVICEFORM_MAKER_BOARD 0x00000015 -#define DEVICEFAMILYDEVICEFORM_MEDICAL 0x00000016 -#define DEVICEFAMILYDEVICEFORM_NETWORKING 0x00000017 -#define DEVICEFAMILYDEVICEFORM_POINT_OF_SERVICE 0x00000018 -#define DEVICEFAMILYDEVICEFORM_PRINTING 0x00000019 -#define DEVICEFAMILYDEVICEFORM_THIN_CLIENT 0x0000001A -#define DEVICEFAMILYDEVICEFORM_TOY 0x0000001B -#define DEVICEFAMILYDEVICEFORM_VENDING 0x0000001C -#define DEVICEFAMILYDEVICEFORM_INDUSTRY_OTHER 0x0000001D -#define DEVICEFAMILYDEVICEFORM_XBOX_ONE 0x0000001E -#define DEVICEFAMILYDEVICEFORM_XBOX_ONE_S 0x0000001F -#define DEVICEFAMILYDEVICEFORM_XBOX_ONE_X 0x00000020 -#define DEVICEFAMILYDEVICEFORM_XBOX_ONE_X_DEVKIT 0x00000021 - -#define DEVICEFAMILYDEVICEFORM_MAX 0x00000021 - -VOID -NTAPI -RtlGetDeviceFamilyInfoEnum( - _Out_opt_ ULONGLONG *pullUAPInfo, - _Out_opt_ DWORD *pulDeviceFamily, - _Out_opt_ DWORD *pulDeviceForm -); - -DWORD -NTAPI -RtlConvertDeviceFamilyInfoToString( - _Inout_ PDWORD pulDeviceFamilyBufferSize, - _Inout_ PDWORD pulDeviceFormBufferSize, - _Out_writes_bytes_(*pulDeviceFamilyBufferSize) PWSTR DeviceFamily, - _Out_writes_bytes_(*pulDeviceFormBufferSize) PWSTR DeviceForm - -); - -DWORD -NTAPI -RtlSwitchedVVI( - _In_ PRTL_OSVERSIONINFOEXW VersionInfo, - _In_ DWORD TypeMask, - _In_ ULONGLONG ConditionMask - ); - - -#endif // (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#pragma endregion - -#define DLL_PROCESS_ATTACH 1 -#define DLL_THREAD_ATTACH 2 -#define DLL_THREAD_DETACH 3 -#define DLL_PROCESS_DETACH 0 - -// -// Defines for the READ flags for Eventlogging -// -#define EVENTLOG_SEQUENTIAL_READ 0x0001 -#define EVENTLOG_SEEK_READ 0x0002 -#define EVENTLOG_FORWARDS_READ 0x0004 -#define EVENTLOG_BACKWARDS_READ 0x0008 - -// -// The types of events that can be logged. -// -#define EVENTLOG_SUCCESS 0x0000 -#define EVENTLOG_ERROR_TYPE 0x0001 -#define EVENTLOG_WARNING_TYPE 0x0002 -#define EVENTLOG_INFORMATION_TYPE 0x0004 -#define EVENTLOG_AUDIT_SUCCESS 0x0008 -#define EVENTLOG_AUDIT_FAILURE 0x0010 - -// -// Defines for the WRITE flags used by Auditing for paired events -// These are not implemented in Product 1 -// - -#define EVENTLOG_START_PAIRED_EVENT 0x0001 -#define EVENTLOG_END_PAIRED_EVENT 0x0002 -#define EVENTLOG_END_ALL_PAIRED_EVENTS 0x0004 -#define EVENTLOG_PAIRED_EVENT_ACTIVE 0x0008 -#define EVENTLOG_PAIRED_EVENT_INACTIVE 0x0010 - -// -// Structure that defines the header of the Eventlog record. This is the -// fixed-sized portion before all the variable-length strings, binary -// data and pad bytes. -// -// TimeGenerated is the time it was generated at the client. -// TimeWritten is the time it was put into the log at the server end. -// - -typedef struct _EVENTLOGRECORD { - DWORD Length; // Length of full record - DWORD Reserved; // Used by the service - DWORD RecordNumber; // Absolute record number - DWORD TimeGenerated; // Seconds since 1-1-1970 - DWORD TimeWritten; // Seconds since 1-1-1970 - DWORD EventID; - WORD EventType; - WORD NumStrings; - WORD EventCategory; - WORD ReservedFlags; // For use with paired events (auditing) - DWORD ClosingRecordNumber; // For use with paired events (auditing) - DWORD StringOffset; // Offset from beginning of record - DWORD UserSidLength; - DWORD UserSidOffset; - DWORD DataLength; - DWORD DataOffset; // Offset from beginning of record - // - // Then follow: - // - // WCHAR SourceName[] - // WCHAR Computername[] - // SID UserSid - // WCHAR Strings[] - // BYTE Data[] - // CHAR Pad[] - // DWORD Length; - // -} EVENTLOGRECORD, *PEVENTLOGRECORD; - -//SS: start of changes to support clustering -//SS: ideally the -#define MAXLOGICALLOGNAMESIZE 256 - -#if _MSC_VER >= 1200 -#pragma warning(push) -#endif -#pragma warning(disable : 4200) /* nonstandard extension used : zero-sized array in struct/union */ - -struct _EVENTSFORLOGFILE; -typedef struct _EVENTSFORLOGFILE EVENTSFORLOGFILE, *PEVENTSFORLOGFILE; - -struct _PACKEDEVENTINFO; -typedef struct _PACKEDEVENTINFO PACKEDEVENTINFO, *PPACKEDEVENTINFO; - -#if defined(_MSC_EXTENSIONS) - -struct _EVENTSFORLOGFILE -{ - DWORD ulSize; - WCHAR szLogicalLogFile[MAXLOGICALLOGNAMESIZE]; //name of the logical file-security/application/system - DWORD ulNumRecords; - EVENTLOGRECORD pEventLogRecords[]; -}; - -struct _PACKEDEVENTINFO -{ - DWORD ulSize; //total size of the structure - DWORD ulNumEventsForLogFile; //number of EventsForLogFile structure that follow - DWORD ulOffsets[]; //the offsets from the start of this structure to the EVENTSFORLOGFILE structure -}; - -#endif - -#if _MSC_VER >= 1200 -#pragma warning(pop) -#else -#pragma warning(default : 4200) /* nonstandard extension used : zero-sized array in struct/union */ -#endif -//SS: end of changes to support clustering -// - -// begin_wdm -// begin_access - -// -// Registry Specific Access Rights. -// - -#define KEY_QUERY_VALUE (0x0001) -#define KEY_SET_VALUE (0x0002) -#define KEY_CREATE_SUB_KEY (0x0004) -#define KEY_ENUMERATE_SUB_KEYS (0x0008) -#define KEY_NOTIFY (0x0010) -#define KEY_CREATE_LINK (0x0020) -#define KEY_WOW64_32KEY (0x0200) -#define KEY_WOW64_64KEY (0x0100) -#define KEY_WOW64_RES (0x0300) - -#define KEY_READ ((STANDARD_RIGHTS_READ |\ - KEY_QUERY_VALUE |\ - KEY_ENUMERATE_SUB_KEYS |\ - KEY_NOTIFY) \ - & \ - (~SYNCHRONIZE)) - - -#define KEY_WRITE ((STANDARD_RIGHTS_WRITE |\ - KEY_SET_VALUE |\ - KEY_CREATE_SUB_KEY) \ - & \ - (~SYNCHRONIZE)) - -#define KEY_EXECUTE ((KEY_READ) \ - & \ - (~SYNCHRONIZE)) - -#define KEY_ALL_ACCESS ((STANDARD_RIGHTS_ALL |\ - KEY_QUERY_VALUE |\ - KEY_SET_VALUE |\ - KEY_CREATE_SUB_KEY |\ - KEY_ENUMERATE_SUB_KEYS |\ - KEY_NOTIFY |\ - KEY_CREATE_LINK) \ - & \ - (~SYNCHRONIZE)) - -// end_access - -// -// Open/Create Options -// - -#define REG_OPTION_RESERVED (0x00000000L) // Parameter is reserved - -#define REG_OPTION_NON_VOLATILE (0x00000000L) // Key is preserved - // when system is rebooted - -#define REG_OPTION_VOLATILE (0x00000001L) // Key is not preserved - // when system is rebooted - -#define REG_OPTION_CREATE_LINK (0x00000002L) // Created key is a - // symbolic link - -#define REG_OPTION_BACKUP_RESTORE (0x00000004L) // open for backup or restore - // special access rules - // privilege required - -#define REG_OPTION_OPEN_LINK (0x00000008L) // Open symbolic link - -#define REG_OPTION_DONT_VIRTUALIZE (0x00000010L) // Disable Open/Read/Write - // virtualization for this - // open and the resulting - // handle. - -#define REG_LEGAL_OPTION \ - (REG_OPTION_RESERVED |\ - REG_OPTION_NON_VOLATILE |\ - REG_OPTION_VOLATILE |\ - REG_OPTION_CREATE_LINK |\ - REG_OPTION_BACKUP_RESTORE |\ - REG_OPTION_OPEN_LINK |\ - REG_OPTION_DONT_VIRTUALIZE) - -#define REG_OPEN_LEGAL_OPTION \ - (REG_OPTION_RESERVED |\ - REG_OPTION_BACKUP_RESTORE |\ - REG_OPTION_OPEN_LINK |\ - REG_OPTION_DONT_VIRTUALIZE) - -// -// Key creation/open disposition -// - -#define REG_CREATED_NEW_KEY (0x00000001L) // New Registry Key created -#define REG_OPENED_EXISTING_KEY (0x00000002L) // Existing Key opened - -// -// hive format to be used by Reg(Nt)SaveKeyEx -// -#define REG_STANDARD_FORMAT 1 -#define REG_LATEST_FORMAT 2 -#define REG_NO_COMPRESSION 4 - -// -// Key restore & hive load flags -// - -#define REG_WHOLE_HIVE_VOLATILE (0x00000001L) // Restore whole hive volatile -#define REG_REFRESH_HIVE (0x00000002L) // Unwind changes to last flush -#define REG_NO_LAZY_FLUSH (0x00000004L) // Never lazy flush this hive -#define REG_FORCE_RESTORE (0x00000008L) // Force the restore process even when we have open handles on subkeys -#define REG_APP_HIVE (0x00000010L) // Loads the hive visible to the calling process -#define REG_PROCESS_PRIVATE (0x00000020L) // Hive cannot be mounted by any other process while in use -#define REG_START_JOURNAL (0x00000040L) // Starts Hive Journal -#define REG_HIVE_EXACT_FILE_GROWTH (0x00000080L) // Grow hive file in exact 4k increments -#define REG_HIVE_NO_RM (0x00000100L) // No RM is started for this hive (no transactions) -#define REG_HIVE_SINGLE_LOG (0x00000200L) // Legacy single logging is used for this hive -#define REG_BOOT_HIVE (0x00000400L) // This hive might be used by the OS loader -#define REG_LOAD_HIVE_OPEN_HANDLE (0x00000800L) // Load the hive and return a handle to its root kcb -#define REG_FLUSH_HIVE_FILE_GROWTH (0x00001000L) // Flush changes to primary hive file size as part of all flushes -#define REG_OPEN_READ_ONLY (0x00002000L) // Open a hive's files in read-only mode -#define REG_IMMUTABLE (0x00004000L) // Load the hive, but don't allow any modification of it -#define REG_APP_HIVE_OPEN_READ_ONLY (REG_OPEN_READ_ONLY) // Open an app hive's files in read-only mode (if the hive was not previously loaded) - -// -// Unload Flags -// -#define REG_FORCE_UNLOAD 1 -#define REG_UNLOAD_LEGAL_FLAGS (REG_FORCE_UNLOAD) - -// -// Notify filter values -// - -#define REG_NOTIFY_CHANGE_NAME (0x00000001L) // Create or delete (child) -#define REG_NOTIFY_CHANGE_ATTRIBUTES (0x00000002L) -#define REG_NOTIFY_CHANGE_LAST_SET (0x00000004L) // time stamp -#define REG_NOTIFY_CHANGE_SECURITY (0x00000008L) -#define REG_NOTIFY_THREAD_AGNOSTIC (0x10000000L) // Not associated with a calling thread, can only be used - // for async user event based notification - -#define REG_LEGAL_CHANGE_FILTER \ - (REG_NOTIFY_CHANGE_NAME |\ - REG_NOTIFY_CHANGE_ATTRIBUTES |\ - REG_NOTIFY_CHANGE_LAST_SET |\ - REG_NOTIFY_CHANGE_SECURITY |\ - REG_NOTIFY_THREAD_AGNOSTIC) - -// end_wdm - -// -// -// Predefined Value Types. -// - -#define REG_NONE ( 0ul ) // No value type -#define REG_SZ ( 1ul ) // Unicode nul terminated string -#define REG_EXPAND_SZ ( 2ul ) // Unicode nul terminated string - // (with environment variable references) -#define REG_BINARY ( 3ul ) // Free form binary -#define REG_DWORD ( 4ul ) // 32-bit number -#define REG_DWORD_LITTLE_ENDIAN ( 4ul ) // 32-bit number (same as REG_DWORD) -#define REG_DWORD_BIG_ENDIAN ( 5ul ) // 32-bit number -#define REG_LINK ( 6ul ) // Symbolic Link (unicode) -#define REG_MULTI_SZ ( 7ul ) // Multiple Unicode strings -#define REG_RESOURCE_LIST ( 8ul ) // Resource list in the resource map -#define REG_FULL_RESOURCE_DESCRIPTOR ( 9ul ) // Resource list in the hardware description -#define REG_RESOURCE_REQUIREMENTS_LIST ( 10ul ) -#define REG_QWORD ( 11ul ) // 64-bit number -#define REG_QWORD_LITTLE_ENDIAN ( 11ul ) // 64-bit number (same as REG_QWORD) - -// end_wdm - -// begin_wdm -// -// Service Types (Bit Mask) -// -#define SERVICE_KERNEL_DRIVER 0x00000001 -#define SERVICE_FILE_SYSTEM_DRIVER 0x00000002 -#define SERVICE_ADAPTER 0x00000004 -#define SERVICE_RECOGNIZER_DRIVER 0x00000008 - -#define SERVICE_DRIVER (SERVICE_KERNEL_DRIVER | \ - SERVICE_FILE_SYSTEM_DRIVER | \ - SERVICE_RECOGNIZER_DRIVER) - -#define SERVICE_WIN32_OWN_PROCESS 0x00000010 -#define SERVICE_WIN32_SHARE_PROCESS 0x00000020 -#define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS | \ - SERVICE_WIN32_SHARE_PROCESS) - -#define SERVICE_USER_SERVICE 0x00000040 -#define SERVICE_USERSERVICE_INSTANCE 0x00000080 - -#define SERVICE_USER_SHARE_PROCESS (SERVICE_USER_SERVICE | \ - SERVICE_WIN32_SHARE_PROCESS) -#define SERVICE_USER_OWN_PROCESS (SERVICE_USER_SERVICE | \ - SERVICE_WIN32_OWN_PROCESS) - -#define SERVICE_INTERACTIVE_PROCESS 0x00000100 -#define SERVICE_PKG_SERVICE 0x00000200 - -#define SERVICE_TYPE_ALL (SERVICE_WIN32 | \ - SERVICE_ADAPTER | \ - SERVICE_DRIVER | \ - SERVICE_INTERACTIVE_PROCESS | \ - SERVICE_USER_SERVICE | \ - SERVICE_USERSERVICE_INSTANCE | \ - SERVICE_PKG_SERVICE) - -// -// Start Type -// - -#define SERVICE_BOOT_START 0x00000000 -#define SERVICE_SYSTEM_START 0x00000001 -#define SERVICE_AUTO_START 0x00000002 -#define SERVICE_DEMAND_START 0x00000003 -#define SERVICE_DISABLED 0x00000004 - -// -// Error control type -// -#define SERVICE_ERROR_IGNORE 0x00000000 -#define SERVICE_ERROR_NORMAL 0x00000001 -#define SERVICE_ERROR_SEVERE 0x00000002 -#define SERVICE_ERROR_CRITICAL 0x00000003 - -// -// -// Define the registry driver node enumerations -// - -typedef enum _CM_SERVICE_NODE_TYPE { - DriverType = SERVICE_KERNEL_DRIVER, - FileSystemType = SERVICE_FILE_SYSTEM_DRIVER, - Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS, - Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS, - AdapterType = SERVICE_ADAPTER, - RecognizerType = SERVICE_RECOGNIZER_DRIVER -} SERVICE_NODE_TYPE; - -typedef enum _CM_SERVICE_LOAD_TYPE { - BootLoad = SERVICE_BOOT_START, - SystemLoad = SERVICE_SYSTEM_START, - AutoLoad = SERVICE_AUTO_START, - DemandLoad = SERVICE_DEMAND_START, - DisableLoad = SERVICE_DISABLED -} SERVICE_LOAD_TYPE; - -typedef enum _CM_ERROR_CONTROL_TYPE { - IgnoreError = SERVICE_ERROR_IGNORE, - NormalError = SERVICE_ERROR_NORMAL, - SevereError = SERVICE_ERROR_SEVERE, - CriticalError = SERVICE_ERROR_CRITICAL -} SERVICE_ERROR_TYPE; - -// -// Service node Flags. These flags are used by the OS loader to promote -// a driver's start type to boot start if the system is booting using -// the specified mechanism. The flags should be set in the driver's -// registry configuration. -// -// CM_SERVICE_NETWORK_BOOT_LOAD - Specified if a driver should be -// promoted on network boot. -// -// CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD - Specified if a driver should be -// promoted on booting from a VHD. -// -// CM_SERVICE_USB_DISK_BOOT_LOAD - Specified if a driver should be promoted -// while booting from a USB disk. -// -// CM_SERVICE_SD_DISK_BOOT_LOAD - Specified if a driver should be promoted -// while booting from SD storage. -// -// CM_SERVICE_USB3_DISK_BOOT_LOAD - Specified if a driver should be promoted -// while booting from a disk on a USB3 controller. -// -// CM_SERVICE_MEASURED_BOOT_LOAD - Specified if a driver should be promoted -// while booting with measured boot enabled. -// -// CM_SERVICE_VERIFIER_BOOT_LOAD - Specified if a driver should be promoted -// while booting with verifier boot enabled. -// -// CM_SERVICE_WINPE_BOOT_LOAD - Specified if a driver should be promoted -// on WinPE boot. -// -// CM_SERVICE_RAM_DISK_BOOT_LOAD - Specified if a driver should be promoted -// when booting from a RAM disk. -// - -#define CM_SERVICE_NETWORK_BOOT_LOAD 0x00000001 -#define CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD 0x00000002 -#define CM_SERVICE_USB_DISK_BOOT_LOAD 0x00000004 -#define CM_SERVICE_SD_DISK_BOOT_LOAD 0x00000008 -#define CM_SERVICE_USB3_DISK_BOOT_LOAD 0x00000010 -#define CM_SERVICE_MEASURED_BOOT_LOAD 0x00000020 -#define CM_SERVICE_VERIFIER_BOOT_LOAD 0x00000040 -#define CM_SERVICE_WINPE_BOOT_LOAD 0x00000080 -#define CM_SERVICE_RAM_DISK_BOOT_LOAD 0x00000100 - -// -// Mask defining the legal promotion flag values. -// - -#define CM_SERVICE_VALID_PROMOTION_MASK (CM_SERVICE_NETWORK_BOOT_LOAD | \ - CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD | \ - CM_SERVICE_USB_DISK_BOOT_LOAD | \ - CM_SERVICE_SD_DISK_BOOT_LOAD | \ - CM_SERVICE_USB3_DISK_BOOT_LOAD | \ - CM_SERVICE_MEASURED_BOOT_LOAD | \ - CM_SERVICE_VERIFIER_BOOT_LOAD | \ - CM_SERVICE_WINPE_BOOT_LOAD | \ - CM_SERVICE_RAM_DISK_BOOT_LOAD) - - -#ifndef _NTDDTAPE_WINNT_ -#define _NTDDTAPE_WINNT_ - -// -// IOCTL_TAPE_ERASE definitions -// - -#define TAPE_ERASE_SHORT 0L -#define TAPE_ERASE_LONG 1L - -typedef struct _TAPE_ERASE { - DWORD Type; - BOOLEAN Immediate; -} TAPE_ERASE, *PTAPE_ERASE; - -// -// IOCTL_TAPE_PREPARE definitions -// - -#define TAPE_LOAD 0L -#define TAPE_UNLOAD 1L -#define TAPE_TENSION 2L -#define TAPE_LOCK 3L -#define TAPE_UNLOCK 4L -#define TAPE_FORMAT 5L - -typedef struct _TAPE_PREPARE { - DWORD Operation; - BOOLEAN Immediate; -} TAPE_PREPARE, *PTAPE_PREPARE; - -// -// IOCTL_TAPE_WRITE_MARKS definitions -// - -#define TAPE_SETMARKS 0L -#define TAPE_FILEMARKS 1L -#define TAPE_SHORT_FILEMARKS 2L -#define TAPE_LONG_FILEMARKS 3L - -typedef struct _TAPE_WRITE_MARKS { - DWORD Type; - DWORD Count; - BOOLEAN Immediate; -} TAPE_WRITE_MARKS, *PTAPE_WRITE_MARKS; - -// -// IOCTL_TAPE_GET_POSITION definitions -// - -#define TAPE_ABSOLUTE_POSITION 0L -#define TAPE_LOGICAL_POSITION 1L -#define TAPE_PSEUDO_LOGICAL_POSITION 2L - -typedef struct _TAPE_GET_POSITION { - DWORD Type; - DWORD Partition; - LARGE_INTEGER Offset; -} TAPE_GET_POSITION, *PTAPE_GET_POSITION; - -// -// IOCTL_TAPE_SET_POSITION definitions -// - -#define TAPE_REWIND 0L -#define TAPE_ABSOLUTE_BLOCK 1L -#define TAPE_LOGICAL_BLOCK 2L -#define TAPE_PSEUDO_LOGICAL_BLOCK 3L -#define TAPE_SPACE_END_OF_DATA 4L -#define TAPE_SPACE_RELATIVE_BLOCKS 5L -#define TAPE_SPACE_FILEMARKS 6L -#define TAPE_SPACE_SEQUENTIAL_FMKS 7L -#define TAPE_SPACE_SETMARKS 8L -#define TAPE_SPACE_SEQUENTIAL_SMKS 9L - -typedef struct _TAPE_SET_POSITION { - DWORD Method; - DWORD Partition; - LARGE_INTEGER Offset; - BOOLEAN Immediate; -} TAPE_SET_POSITION, *PTAPE_SET_POSITION; - -// -// IOCTL_TAPE_GET_DRIVE_PARAMS definitions -// - -// -// Definitions for FeaturesLow parameter -// - -#define TAPE_DRIVE_FIXED 0x00000001 -#define TAPE_DRIVE_SELECT 0x00000002 -#define TAPE_DRIVE_INITIATOR 0x00000004 - -#define TAPE_DRIVE_ERASE_SHORT 0x00000010 -#define TAPE_DRIVE_ERASE_LONG 0x00000020 -#define TAPE_DRIVE_ERASE_BOP_ONLY 0x00000040 -#define TAPE_DRIVE_ERASE_IMMEDIATE 0x00000080 - -#define TAPE_DRIVE_TAPE_CAPACITY 0x00000100 -#define TAPE_DRIVE_TAPE_REMAINING 0x00000200 -#define TAPE_DRIVE_FIXED_BLOCK 0x00000400 -#define TAPE_DRIVE_VARIABLE_BLOCK 0x00000800 - -#define TAPE_DRIVE_WRITE_PROTECT 0x00001000 -#define TAPE_DRIVE_EOT_WZ_SIZE 0x00002000 - -#define TAPE_DRIVE_ECC 0x00010000 -#define TAPE_DRIVE_COMPRESSION 0x00020000 -#define TAPE_DRIVE_PADDING 0x00040000 -#define TAPE_DRIVE_REPORT_SMKS 0x00080000 - -#define TAPE_DRIVE_GET_ABSOLUTE_BLK 0x00100000 -#define TAPE_DRIVE_GET_LOGICAL_BLK 0x00200000 -#define TAPE_DRIVE_SET_EOT_WZ_SIZE 0x00400000 - -#define TAPE_DRIVE_EJECT_MEDIA 0x01000000 -#define TAPE_DRIVE_CLEAN_REQUESTS 0x02000000 -#define TAPE_DRIVE_SET_CMP_BOP_ONLY 0x04000000 - -#define TAPE_DRIVE_RESERVED_BIT 0x80000000 //don't use this bit! -// //can't be a low features bit! -// //reserved; high features only - -// -// Definitions for FeaturesHigh parameter -// - -#define TAPE_DRIVE_LOAD_UNLOAD 0x80000001 -#define TAPE_DRIVE_TENSION 0x80000002 -#define TAPE_DRIVE_LOCK_UNLOCK 0x80000004 -#define TAPE_DRIVE_REWIND_IMMEDIATE 0x80000008 - -#define TAPE_DRIVE_SET_BLOCK_SIZE 0x80000010 -#define TAPE_DRIVE_LOAD_UNLD_IMMED 0x80000020 -#define TAPE_DRIVE_TENSION_IMMED 0x80000040 -#define TAPE_DRIVE_LOCK_UNLK_IMMED 0x80000080 - -#define TAPE_DRIVE_SET_ECC 0x80000100 -#define TAPE_DRIVE_SET_COMPRESSION 0x80000200 -#define TAPE_DRIVE_SET_PADDING 0x80000400 -#define TAPE_DRIVE_SET_REPORT_SMKS 0x80000800 - -#define TAPE_DRIVE_ABSOLUTE_BLK 0x80001000 -#define TAPE_DRIVE_ABS_BLK_IMMED 0x80002000 -#define TAPE_DRIVE_LOGICAL_BLK 0x80004000 -#define TAPE_DRIVE_LOG_BLK_IMMED 0x80008000 - -#define TAPE_DRIVE_END_OF_DATA 0x80010000 -#define TAPE_DRIVE_RELATIVE_BLKS 0x80020000 -#define TAPE_DRIVE_FILEMARKS 0x80040000 -#define TAPE_DRIVE_SEQUENTIAL_FMKS 0x80080000 - -#define TAPE_DRIVE_SETMARKS 0x80100000 -#define TAPE_DRIVE_SEQUENTIAL_SMKS 0x80200000 -#define TAPE_DRIVE_REVERSE_POSITION 0x80400000 -#define TAPE_DRIVE_SPACE_IMMEDIATE 0x80800000 - -#define TAPE_DRIVE_WRITE_SETMARKS 0x81000000 -#define TAPE_DRIVE_WRITE_FILEMARKS 0x82000000 -#define TAPE_DRIVE_WRITE_SHORT_FMKS 0x84000000 -#define TAPE_DRIVE_WRITE_LONG_FMKS 0x88000000 - -#define TAPE_DRIVE_WRITE_MARK_IMMED 0x90000000 -#define TAPE_DRIVE_FORMAT 0xA0000000 -#define TAPE_DRIVE_FORMAT_IMMEDIATE 0xC0000000 -#define TAPE_DRIVE_HIGH_FEATURES 0x80000000 //mask for high features flag - -typedef struct _TAPE_GET_DRIVE_PARAMETERS { - BOOLEAN ECC; - BOOLEAN Compression; - BOOLEAN DataPadding; - BOOLEAN ReportSetmarks; - DWORD DefaultBlockSize; - DWORD MaximumBlockSize; - DWORD MinimumBlockSize; - DWORD MaximumPartitionCount; - DWORD FeaturesLow; - DWORD FeaturesHigh; - DWORD EOTWarningZoneSize; -} TAPE_GET_DRIVE_PARAMETERS, *PTAPE_GET_DRIVE_PARAMETERS; - -// -// IOCTL_TAPE_SET_DRIVE_PARAMETERS definitions -// - -typedef struct _TAPE_SET_DRIVE_PARAMETERS { - BOOLEAN ECC; - BOOLEAN Compression; - BOOLEAN DataPadding; - BOOLEAN ReportSetmarks; - DWORD EOTWarningZoneSize; -} TAPE_SET_DRIVE_PARAMETERS, *PTAPE_SET_DRIVE_PARAMETERS; - -// -// IOCTL_TAPE_GET_MEDIA_PARAMETERS definitions -// - -typedef struct _TAPE_GET_MEDIA_PARAMETERS { - LARGE_INTEGER Capacity; - LARGE_INTEGER Remaining; - DWORD BlockSize; - DWORD PartitionCount; - BOOLEAN WriteProtected; -} TAPE_GET_MEDIA_PARAMETERS, *PTAPE_GET_MEDIA_PARAMETERS; - -// -// IOCTL_TAPE_SET_MEDIA_PARAMETERS definitions -// - -typedef struct _TAPE_SET_MEDIA_PARAMETERS { - DWORD BlockSize; -} TAPE_SET_MEDIA_PARAMETERS, *PTAPE_SET_MEDIA_PARAMETERS; - -// -// IOCTL_TAPE_CREATE_PARTITION definitions -// - -#define TAPE_FIXED_PARTITIONS 0L -#define TAPE_SELECT_PARTITIONS 1L -#define TAPE_INITIATOR_PARTITIONS 2L - -typedef struct _TAPE_CREATE_PARTITION { - DWORD Method; - DWORD Count; - DWORD Size; -} TAPE_CREATE_PARTITION, *PTAPE_CREATE_PARTITION; - - -// -// WMI Methods -// -#define TAPE_QUERY_DRIVE_PARAMETERS 0L -#define TAPE_QUERY_MEDIA_CAPACITY 1L -#define TAPE_CHECK_FOR_DRIVE_PROBLEM 2L -#define TAPE_QUERY_IO_ERROR_DATA 3L -#define TAPE_QUERY_DEVICE_ERROR_DATA 4L - -typedef struct _TAPE_WMI_OPERATIONS { - DWORD Method; - DWORD DataBufferSize; - PVOID DataBuffer; -} TAPE_WMI_OPERATIONS, *PTAPE_WMI_OPERATIONS; - -// -// Type of drive errors -// -typedef enum _TAPE_DRIVE_PROBLEM_TYPE { - TapeDriveProblemNone, TapeDriveReadWriteWarning, - TapeDriveReadWriteError, TapeDriveReadWarning, - TapeDriveWriteWarning, TapeDriveReadError, - TapeDriveWriteError, TapeDriveHardwareError, - TapeDriveUnsupportedMedia, TapeDriveScsiConnectionError, - TapeDriveTimetoClean, TapeDriveCleanDriveNow, - TapeDriveMediaLifeExpired, TapeDriveSnappedTape -} TAPE_DRIVE_PROBLEM_TYPE; - -#endif -#ifndef _NTTMAPI_ -#define _NTTMAPI_ - - -#ifdef __cplusplus -extern "C" { -#endif - - -#include - -#if _MSC_VER >= 1200 -#pragma warning(push) -#pragma warning(disable:4820) // padding added after data member -#endif - -// -// Types for Nt level TM calls -// - -// begin_access - -// -// KTM Tm object rights -// -#define TRANSACTIONMANAGER_QUERY_INFORMATION ( 0x0001 ) -#define TRANSACTIONMANAGER_SET_INFORMATION ( 0x0002 ) -#define TRANSACTIONMANAGER_RECOVER ( 0x0004 ) -#define TRANSACTIONMANAGER_RENAME ( 0x0008 ) -#define TRANSACTIONMANAGER_CREATE_RM ( 0x0010 ) - -// The following right is intended for DTC's use only; it will be -// deprecated, and no one else should take a dependency on it. -#define TRANSACTIONMANAGER_BIND_TRANSACTION ( 0x0020 ) - -// -// Generic mappings for transaction manager rights. -// - -#define TRANSACTIONMANAGER_GENERIC_READ (STANDARD_RIGHTS_READ |\ - TRANSACTIONMANAGER_QUERY_INFORMATION) - -#define TRANSACTIONMANAGER_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\ - TRANSACTIONMANAGER_SET_INFORMATION |\ - TRANSACTIONMANAGER_RECOVER |\ - TRANSACTIONMANAGER_RENAME |\ - TRANSACTIONMANAGER_CREATE_RM) - -#define TRANSACTIONMANAGER_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE) - -#define TRANSACTIONMANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\ - TRANSACTIONMANAGER_GENERIC_READ |\ - TRANSACTIONMANAGER_GENERIC_WRITE |\ - TRANSACTIONMANAGER_GENERIC_EXECUTE |\ - TRANSACTIONMANAGER_BIND_TRANSACTION) - - -// -// KTM transaction object rights. -// -#define TRANSACTION_QUERY_INFORMATION ( 0x0001 ) -#define TRANSACTION_SET_INFORMATION ( 0x0002 ) -#define TRANSACTION_ENLIST ( 0x0004 ) -#define TRANSACTION_COMMIT ( 0x0008 ) -#define TRANSACTION_ROLLBACK ( 0x0010 ) -#define TRANSACTION_PROPAGATE ( 0x0020 ) -#define TRANSACTION_RIGHT_RESERVED1 ( 0x0040 ) - -// -// Generic mappings for transaction rights. -// Resource managers, when enlisting, should generally use the macro -// TRANSACTION_RESOURCE_MANAGER_RIGHTS when opening a transaction. -// It's the same as generic read and write except that it does not allow -// a commit decision to be made. -// - -#define TRANSACTION_GENERIC_READ (STANDARD_RIGHTS_READ |\ - TRANSACTION_QUERY_INFORMATION |\ - SYNCHRONIZE) - -#define TRANSACTION_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\ - TRANSACTION_SET_INFORMATION |\ - TRANSACTION_COMMIT |\ - TRANSACTION_ENLIST |\ - TRANSACTION_ROLLBACK |\ - TRANSACTION_PROPAGATE |\ - SYNCHRONIZE) - -#define TRANSACTION_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ - TRANSACTION_COMMIT |\ - TRANSACTION_ROLLBACK |\ - SYNCHRONIZE) - -#define TRANSACTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\ - TRANSACTION_GENERIC_READ |\ - TRANSACTION_GENERIC_WRITE |\ - TRANSACTION_GENERIC_EXECUTE) - -#define TRANSACTION_RESOURCE_MANAGER_RIGHTS (TRANSACTION_GENERIC_READ |\ - STANDARD_RIGHTS_WRITE |\ - TRANSACTION_SET_INFORMATION |\ - TRANSACTION_ENLIST |\ - TRANSACTION_ROLLBACK |\ - TRANSACTION_PROPAGATE |\ - SYNCHRONIZE) - -// -// KTM resource manager object rights. -// -#define RESOURCEMANAGER_QUERY_INFORMATION ( 0x0001 ) -#define RESOURCEMANAGER_SET_INFORMATION ( 0x0002 ) -#define RESOURCEMANAGER_RECOVER ( 0x0004 ) -#define RESOURCEMANAGER_ENLIST ( 0x0008 ) -#define RESOURCEMANAGER_GET_NOTIFICATION ( 0x0010 ) -#define RESOURCEMANAGER_REGISTER_PROTOCOL ( 0x0020 ) -#define RESOURCEMANAGER_COMPLETE_PROPAGATION ( 0x0040 ) - -// -// Generic mappings for resource manager rights. -// -#define RESOURCEMANAGER_GENERIC_READ (STANDARD_RIGHTS_READ |\ - RESOURCEMANAGER_QUERY_INFORMATION |\ - SYNCHRONIZE) - -#define RESOURCEMANAGER_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\ - RESOURCEMANAGER_SET_INFORMATION |\ - RESOURCEMANAGER_RECOVER |\ - RESOURCEMANAGER_ENLIST |\ - RESOURCEMANAGER_GET_NOTIFICATION |\ - RESOURCEMANAGER_REGISTER_PROTOCOL |\ - RESOURCEMANAGER_COMPLETE_PROPAGATION |\ - SYNCHRONIZE) - -#define RESOURCEMANAGER_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ - RESOURCEMANAGER_RECOVER |\ - RESOURCEMANAGER_ENLIST |\ - RESOURCEMANAGER_GET_NOTIFICATION |\ - RESOURCEMANAGER_COMPLETE_PROPAGATION |\ - SYNCHRONIZE) - -#define RESOURCEMANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\ - RESOURCEMANAGER_GENERIC_READ |\ - RESOURCEMANAGER_GENERIC_WRITE |\ - RESOURCEMANAGER_GENERIC_EXECUTE) - - -// -// KTM enlistment object rights. -// -#define ENLISTMENT_QUERY_INFORMATION ( 0x0001 ) -#define ENLISTMENT_SET_INFORMATION ( 0x0002 ) -#define ENLISTMENT_RECOVER ( 0x0004 ) -#define ENLISTMENT_SUBORDINATE_RIGHTS ( 0x0008 ) -#define ENLISTMENT_SUPERIOR_RIGHTS ( 0x0010 ) - -// -// Generic mappings for enlistment rights. -// -#define ENLISTMENT_GENERIC_READ (STANDARD_RIGHTS_READ |\ - ENLISTMENT_QUERY_INFORMATION) - -#define ENLISTMENT_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\ - ENLISTMENT_SET_INFORMATION |\ - ENLISTMENT_RECOVER |\ - ENLISTMENT_SUBORDINATE_RIGHTS |\ - ENLISTMENT_SUPERIOR_RIGHTS) - -#define ENLISTMENT_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ - ENLISTMENT_RECOVER |\ - ENLISTMENT_SUBORDINATE_RIGHTS |\ - ENLISTMENT_SUPERIOR_RIGHTS) - -#define ENLISTMENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\ - ENLISTMENT_GENERIC_READ |\ - ENLISTMENT_GENERIC_WRITE |\ - ENLISTMENT_GENERIC_EXECUTE) - -// end_access - -// -// Transaction outcomes. -// -// TODO: warning, must match values in KTRANSACTION_OUTCOME duplicated def -// in tm.h. -// - -typedef enum _TRANSACTION_OUTCOME { - TransactionOutcomeUndetermined = 1, - TransactionOutcomeCommitted, - TransactionOutcomeAborted, -} TRANSACTION_OUTCOME; - - -typedef enum _TRANSACTION_STATE { - TransactionStateNormal = 1, - TransactionStateIndoubt, - TransactionStateCommittedNotify, -} TRANSACTION_STATE; - - -typedef struct _TRANSACTION_BASIC_INFORMATION { - GUID TransactionId; - DWORD State; - DWORD Outcome; -} TRANSACTION_BASIC_INFORMATION, *PTRANSACTION_BASIC_INFORMATION; - -typedef struct _TRANSACTIONMANAGER_BASIC_INFORMATION { - GUID TmIdentity; - LARGE_INTEGER VirtualClock; -} TRANSACTIONMANAGER_BASIC_INFORMATION, *PTRANSACTIONMANAGER_BASIC_INFORMATION; - -typedef struct _TRANSACTIONMANAGER_LOG_INFORMATION { - GUID LogIdentity; -} TRANSACTIONMANAGER_LOG_INFORMATION, *PTRANSACTIONMANAGER_LOG_INFORMATION; - -typedef struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION { - DWORD LogPathLength; - _Field_size_(LogPathLength) WCHAR LogPath[1]; // Variable size -// Data[1]; // Variable size data not declared -} TRANSACTIONMANAGER_LOGPATH_INFORMATION, *PTRANSACTIONMANAGER_LOGPATH_INFORMATION; - -typedef struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION { - ULONGLONG LastRecoveredLsn; -} TRANSACTIONMANAGER_RECOVERY_INFORMATION, *PTRANSACTIONMANAGER_RECOVERY_INFORMATION; - - -// end_wdm -typedef struct _TRANSACTIONMANAGER_OLDEST_INFORMATION { - GUID OldestTransactionGuid; -} TRANSACTIONMANAGER_OLDEST_INFORMATION, *PTRANSACTIONMANAGER_OLDEST_INFORMATION; -// begin_wdm - - -typedef struct _TRANSACTION_PROPERTIES_INFORMATION { - DWORD IsolationLevel; - DWORD IsolationFlags; - LARGE_INTEGER Timeout; - DWORD Outcome; - DWORD DescriptionLength; - WCHAR Description[1]; // Variable size -// Data[1]; // Variable size data not declared -} TRANSACTION_PROPERTIES_INFORMATION, *PTRANSACTION_PROPERTIES_INFORMATION; - -// The following info-class is intended for DTC's use only; it will be -// deprecated, and no one else should take a dependency on it. -typedef struct _TRANSACTION_BIND_INFORMATION { - HANDLE TmHandle; -} TRANSACTION_BIND_INFORMATION, *PTRANSACTION_BIND_INFORMATION; - -typedef struct _TRANSACTION_ENLISTMENT_PAIR { - GUID EnlistmentId; - GUID ResourceManagerId; -} TRANSACTION_ENLISTMENT_PAIR, *PTRANSACTION_ENLISTMENT_PAIR; - -typedef struct _TRANSACTION_ENLISTMENTS_INFORMATION { - DWORD NumberOfEnlistments; - TRANSACTION_ENLISTMENT_PAIR EnlistmentPair[1]; // Variable size -} TRANSACTION_ENLISTMENTS_INFORMATION, *PTRANSACTION_ENLISTMENTS_INFORMATION; - -typedef struct _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION { - TRANSACTION_ENLISTMENT_PAIR SuperiorEnlistmentPair; -} TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION, *PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION; - - -typedef struct _RESOURCEMANAGER_BASIC_INFORMATION { - GUID ResourceManagerId; - DWORD DescriptionLength; - WCHAR Description[1]; // Variable size -} RESOURCEMANAGER_BASIC_INFORMATION, *PRESOURCEMANAGER_BASIC_INFORMATION; - -typedef struct _RESOURCEMANAGER_COMPLETION_INFORMATION { - HANDLE IoCompletionPortHandle; - ULONG_PTR CompletionKey; -} RESOURCEMANAGER_COMPLETION_INFORMATION, *PRESOURCEMANAGER_COMPLETION_INFORMATION; - -// end_wdm - -// begin_wdm -typedef enum _TRANSACTION_INFORMATION_CLASS { - TransactionBasicInformation, - TransactionPropertiesInformation, - TransactionEnlistmentInformation, - TransactionSuperiorEnlistmentInformation -// end_wdm - , -// The following info-classes are intended for DTC's use only; it will be -// deprecated, and no one else should take a dependency on it. - TransactionBindInformation, // private and deprecated - TransactionDTCPrivateInformation // private and deprecated - , -// begin_wdm -} TRANSACTION_INFORMATION_CLASS; - -// begin_wdm -typedef enum _TRANSACTIONMANAGER_INFORMATION_CLASS { - TransactionManagerBasicInformation, - TransactionManagerLogInformation, - TransactionManagerLogPathInformation, - TransactionManagerRecoveryInformation = 4 -// end_wdm - , -// The following info-classes are intended for internal use only; they -// are considered deprecated, and no one else should take a dependency -// on them. - TransactionManagerOnlineProbeInformation = 3, - TransactionManagerOldestTransactionInformation = 5 -// end_wdm - -// begin_wdm -} TRANSACTIONMANAGER_INFORMATION_CLASS; - - -// begin_wdm -typedef enum _RESOURCEMANAGER_INFORMATION_CLASS { - ResourceManagerBasicInformation, - ResourceManagerCompletionInformation, -} RESOURCEMANAGER_INFORMATION_CLASS; - - -typedef struct _ENLISTMENT_BASIC_INFORMATION { - GUID EnlistmentId; - GUID TransactionId; - GUID ResourceManagerId; -} ENLISTMENT_BASIC_INFORMATION, *PENLISTMENT_BASIC_INFORMATION; - -typedef struct _ENLISTMENT_CRM_INFORMATION { - GUID CrmTransactionManagerId; - GUID CrmResourceManagerId; - GUID CrmEnlistmentId; -} ENLISTMENT_CRM_INFORMATION, *PENLISTMENT_CRM_INFORMATION; - - -// begin_wdm -typedef enum _ENLISTMENT_INFORMATION_CLASS { - EnlistmentBasicInformation, - EnlistmentRecoveryInformation, - EnlistmentCrmInformation -} ENLISTMENT_INFORMATION_CLASS; - -typedef struct _TRANSACTION_LIST_ENTRY { - UOW UOW; -} TRANSACTION_LIST_ENTRY, *PTRANSACTION_LIST_ENTRY; - -typedef struct _TRANSACTION_LIST_INFORMATION { - DWORD NumberOfTransactions; - TRANSACTION_LIST_ENTRY TransactionInformation[1]; // Var size -} TRANSACTION_LIST_INFORMATION, *PTRANSACTION_LIST_INFORMATION; - - -// -// Types of objects known to the kernel transaction manager. -// - -typedef enum _KTMOBJECT_TYPE { - - KTMOBJECT_TRANSACTION, - KTMOBJECT_TRANSACTION_MANAGER, - KTMOBJECT_RESOURCE_MANAGER, - KTMOBJECT_ENLISTMENT, - KTMOBJECT_INVALID - -} KTMOBJECT_TYPE, *PKTMOBJECT_TYPE; - - -// -// KTMOBJECT_CURSOR -// -// Used by NtEnumerateTransactionObject to enumerate a transaction -// object namespace (e.g. enlistments in a resource manager). -// - -typedef struct _KTMOBJECT_CURSOR { - - // - // The last GUID enumerated; zero if beginning enumeration. - // - - GUID LastQuery; - - // - // A count of GUIDs filled in by this last enumeration. - // - - DWORD ObjectIdCount; - - // - // ObjectIdCount GUIDs from the namespace specified. - // - - GUID ObjectIds[1]; - -} KTMOBJECT_CURSOR, *PKTMOBJECT_CURSOR; - -// begin_wdm - -#if _MSC_VER >= 1200 -#pragma warning(pop) -#endif - -#ifdef __cplusplus -} -#endif - -#endif // _NTTMAPI_ -typedef DWORD TP_VERSION, *PTP_VERSION; - -typedef struct _TP_CALLBACK_INSTANCE TP_CALLBACK_INSTANCE, *PTP_CALLBACK_INSTANCE; - -typedef VOID (NTAPI *PTP_SIMPLE_CALLBACK)( - _Inout_ PTP_CALLBACK_INSTANCE Instance, - _Inout_opt_ PVOID Context - ); - -typedef struct _TP_POOL TP_POOL, *PTP_POOL; - -typedef enum _TP_CALLBACK_PRIORITY { - TP_CALLBACK_PRIORITY_HIGH, - TP_CALLBACK_PRIORITY_NORMAL, - TP_CALLBACK_PRIORITY_LOW, - TP_CALLBACK_PRIORITY_INVALID, - TP_CALLBACK_PRIORITY_COUNT = TP_CALLBACK_PRIORITY_INVALID -} TP_CALLBACK_PRIORITY; - -typedef struct _TP_POOL_STACK_INFORMATION { - SIZE_T StackReserve; - SIZE_T StackCommit; -}TP_POOL_STACK_INFORMATION, *PTP_POOL_STACK_INFORMATION; - -typedef struct _TP_CLEANUP_GROUP TP_CLEANUP_GROUP, *PTP_CLEANUP_GROUP; - -typedef VOID (NTAPI *PTP_CLEANUP_GROUP_CANCEL_CALLBACK)( - _Inout_opt_ PVOID ObjectContext, - _Inout_opt_ PVOID CleanupContext - ); - -// -// Do not manipulate this structure directly! Allocate space for it -// and use the inline interfaces below. -// - -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7) - -typedef struct _TP_CALLBACK_ENVIRON_V3 { - TP_VERSION Version; - PTP_POOL Pool; - PTP_CLEANUP_GROUP CleanupGroup; - PTP_CLEANUP_GROUP_CANCEL_CALLBACK CleanupGroupCancelCallback; - PVOID RaceDll; - struct _ACTIVATION_CONTEXT *ActivationContext; - PTP_SIMPLE_CALLBACK FinalizationCallback; - union { - DWORD Flags; - struct { - DWORD LongFunction : 1; - DWORD Persistent : 1; - DWORD Private : 30; - } s; - } u; - TP_CALLBACK_PRIORITY CallbackPriority; - DWORD Size; -} TP_CALLBACK_ENVIRON_V3; - -typedef TP_CALLBACK_ENVIRON_V3 TP_CALLBACK_ENVIRON, *PTP_CALLBACK_ENVIRON; - -#else - -typedef struct _TP_CALLBACK_ENVIRON_V1 { - TP_VERSION Version; - PTP_POOL Pool; - PTP_CLEANUP_GROUP CleanupGroup; - PTP_CLEANUP_GROUP_CANCEL_CALLBACK CleanupGroupCancelCallback; - PVOID RaceDll; - struct _ACTIVATION_CONTEXT *ActivationContext; - PTP_SIMPLE_CALLBACK FinalizationCallback; - union { - DWORD Flags; - struct { - DWORD LongFunction : 1; - DWORD Persistent : 1; - DWORD Private : 30; - } s; - } u; -} TP_CALLBACK_ENVIRON_V1; - -typedef TP_CALLBACK_ENVIRON_V1 TP_CALLBACK_ENVIRON, *PTP_CALLBACK_ENVIRON; - -#endif - -#if !defined(MIDL_PASS) - -FORCEINLINE -VOID -TpInitializeCallbackEnviron( - _Out_ PTP_CALLBACK_ENVIRON CallbackEnviron - ) -{ - -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7) - - CallbackEnviron->Version = 3; - -#else - - CallbackEnviron->Version = 1; - -#endif - - CallbackEnviron->Pool = NULL; - CallbackEnviron->CleanupGroup = NULL; - CallbackEnviron->CleanupGroupCancelCallback = NULL; - CallbackEnviron->RaceDll = NULL; - CallbackEnviron->ActivationContext = NULL; - CallbackEnviron->FinalizationCallback = NULL; - CallbackEnviron->u.Flags = 0; - -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7) - - CallbackEnviron->CallbackPriority = TP_CALLBACK_PRIORITY_NORMAL; - CallbackEnviron->Size = sizeof(TP_CALLBACK_ENVIRON); - -#endif - -} - -FORCEINLINE -VOID -TpSetCallbackThreadpool( - _Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron, - _In_ PTP_POOL Pool - ) -{ - CallbackEnviron->Pool = Pool; -} - -FORCEINLINE -VOID -TpSetCallbackCleanupGroup( - _Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron, - _In_ PTP_CLEANUP_GROUP CleanupGroup, - _In_opt_ PTP_CLEANUP_GROUP_CANCEL_CALLBACK CleanupGroupCancelCallback - ) -{ - CallbackEnviron->CleanupGroup = CleanupGroup; - CallbackEnviron->CleanupGroupCancelCallback = CleanupGroupCancelCallback; -} - -FORCEINLINE -VOID -TpSetCallbackActivationContext( - _Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron, - _In_opt_ struct _ACTIVATION_CONTEXT *ActivationContext - ) -{ - CallbackEnviron->ActivationContext = ActivationContext; -} - -FORCEINLINE -VOID -TpSetCallbackNoActivationContext( - _Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron - ) -{ - CallbackEnviron->ActivationContext = (struct _ACTIVATION_CONTEXT *)(LONG_PTR) -1; // INVALID_ACTIVATION_CONTEXT -} - -FORCEINLINE -VOID -TpSetCallbackLongFunction( - _Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron - ) -{ - CallbackEnviron->u.s.LongFunction = 1; -} - -FORCEINLINE -VOID -TpSetCallbackRaceWithDll( - _Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron, - _In_ PVOID DllHandle - ) -{ - CallbackEnviron->RaceDll = DllHandle; -} - -FORCEINLINE -VOID -TpSetCallbackFinalizationCallback( - _Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron, - _In_ PTP_SIMPLE_CALLBACK FinalizationCallback - ) -{ - CallbackEnviron->FinalizationCallback = FinalizationCallback; -} - -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7) - -FORCEINLINE -VOID -TpSetCallbackPriority( - _Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron, - _In_ TP_CALLBACK_PRIORITY Priority - ) -{ - CallbackEnviron->CallbackPriority = Priority; -} - -#endif - -FORCEINLINE -VOID -TpSetCallbackPersistent( - _Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron - ) -{ - CallbackEnviron->u.s.Persistent = 1; -} - - -FORCEINLINE -VOID -TpDestroyCallbackEnviron( - _In_ PTP_CALLBACK_ENVIRON CallbackEnviron - ) -{ - // - // For the current version of the callback environment, no actions - // need to be taken to tear down an initialized structure. This - // may change in a future release. - // - - UNREFERENCED_PARAMETER(CallbackEnviron); -} - -#endif // !defined(MIDL_PASS) - - -typedef struct _TP_WORK TP_WORK, *PTP_WORK; - -typedef VOID (NTAPI *PTP_WORK_CALLBACK)( - _Inout_ PTP_CALLBACK_INSTANCE Instance, - _Inout_opt_ PVOID Context, - _Inout_ PTP_WORK Work - ); - -typedef struct _TP_TIMER TP_TIMER, *PTP_TIMER; - -typedef VOID (NTAPI *PTP_TIMER_CALLBACK)( - _Inout_ PTP_CALLBACK_INSTANCE Instance, - _Inout_opt_ PVOID Context, - _Inout_ PTP_TIMER Timer - ); - -typedef DWORD TP_WAIT_RESULT; - -typedef struct _TP_WAIT TP_WAIT, *PTP_WAIT; - -typedef VOID (NTAPI *PTP_WAIT_CALLBACK)( - _Inout_ PTP_CALLBACK_INSTANCE Instance, - _Inout_opt_ PVOID Context, - _Inout_ PTP_WAIT Wait, - _In_ TP_WAIT_RESULT WaitResult - ); - -typedef struct _TP_IO TP_IO, *PTP_IO; - -#if defined(_M_AMD64) && !defined(__midl) - -__forceinline -struct _TEB * -NtCurrentTeb ( - VOID - ) - -{ - return (struct _TEB *)__readgsqword(FIELD_OFFSET(NT_TIB, Self)); -} - -__forceinline -PVOID -GetCurrentFiber ( - VOID - ) - -{ - - return (PVOID)__readgsqword(FIELD_OFFSET(NT_TIB, FiberData)); -} - -__forceinline -PVOID -GetFiberData ( - VOID - ) - -{ - - return *(PVOID *)GetCurrentFiber(); -} - -#endif // _M_AMD64 && !defined(__midl) - - -#if defined(_M_ARM) && !defined(__midl) && !defined(_M_CEE_PURE) - -__forceinline -struct _TEB * -NtCurrentTeb ( - VOID - ) -{ - return (struct _TEB *)(ULONG_PTR)_MoveFromCoprocessor(CP15_TPIDRURW); -} - -__forceinline -PVOID -GetCurrentFiber ( - VOID - ) -{ - return ((PNT_TIB )(ULONG_PTR)_MoveFromCoprocessor(CP15_TPIDRURW))->FiberData; -} - -__forceinline -PVOID -GetFiberData ( - VOID - ) - -{ - return *(PVOID *)GetCurrentFiber(); -} - -#endif // _M_ARM && !defined(__midl) && !defined(_M_CEE_PURE) - - -#if defined(_M_ARM64) && !defined(__midl) && !defined(_M_CEE_PURE) - -__forceinline -struct _TEB * -NtCurrentTeb ( - VOID - ) -{ - return (struct _TEB *)__getReg(18); -} - -__forceinline -PVOID -GetCurrentFiber ( - VOID - ) -{ - return ((PNT_TIB )__getReg(18))->FiberData; -} - -__forceinline -PVOID -GetFiberData ( - VOID - ) - -{ - return *(PVOID *)GetCurrentFiber(); -} - -#endif // _M_ARM64 && !defined(__midl) && !defined(_M_CEE_PURE) - - -#if defined(_M_IX86) && !defined(MIDL_PASS) - -#define PcTeb 0x18 - -#if !defined(_M_CEE_PURE) - -__inline struct _TEB * NtCurrentTeb( void ) { return (struct _TEB *) (ULONG_PTR) __readfsdword (PcTeb); } - -#endif // !defined(_M_CEE_PURE) - -#endif // defined(_M_IX86) && !defined(MIDL_PASS) - -#if (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED // winnt_only -#define ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION (1) -#define ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION (2) -#define ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION (3) -#define ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION (4) -#define ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION (5) -#define ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION (6) -#define ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION (7) -#define ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE (8) -#define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES (9) -#define ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS (10) -#define ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO (11) -#define ACTIVATION_CONTEXT_SECTION_WINRT_ACTIVATABLE_CLASSES (12) -#endif // winnt_only - -#ifdef __cplusplus -} -#endif - -#if _MSC_VER >= 1200 -#pragma warning(pop) -#else -#pragma warning(default:4200) // nonstandard extension used : zero-sized array in struct/union -#pragma warning(default:4201) // named type definition in parentheses -#pragma warning(default:4214) // bit field types other than int -#endif - -#endif /* _WINNT_ */ - diff --git a/src/custom/winsdk/include/um/winternl.h b/src/custom/winsdk/include/um/winternl.h deleted file mode 100644 index fd1c935..0000000 --- a/src/custom/winsdk/include/um/winternl.h +++ /dev/null @@ -1,1017 +0,0 @@ -/************************************************************************ -* * -* winternl.h -- This module defines the internal NT APIs and data * -* structures that are intended for the use only by internal core * -* Windows components. These APIs and data structures may change * -* at any time. * -* * -* These APIs and data structures are subject to changes from one * -* Windows release to another Windows release. To maintain the * -* compatiblity of your application, avoid using these APIs and * -* data structures. * -* * -* The appropriate mechanism for accessing the functions defined in * -* this header is to use LoadLibrary() for ntdll.dll and * -* GetProcAddress() for the particular function. By using this * -* approach, your application will be more resilient to changes * -* for these functions between Windows releases. If a function * -* prototype does change, then GetProcAddress() for that function * -* might detect the change and fail the function call, which your * -* application will be able to detect. GetProcAddress() may not * -* be able to detect all signature changes, thus avoid using these * -* internal functions. Instead, your application should use the * -* appropriate Win32 function that provides equivalent or similiar * -* functionality. * -* * -* Copyright (c) Microsoft Corp. All rights reserved. * -* * -************************************************************************/ - -#ifndef _WINTERNL_ -#define _WINTERNL_ -#include - -#undef __kernel_entry -#define __kernel_entry __declspec(dllimport) - -#pragma region Desktop Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - - -#if (_WIN32_WINNT >= 0x0500) - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -// -// These data structures and type definitions are needed for compilation and -// use of the internal Windows APIs defined in this header. -// - -typedef _Return_type_success_(return >= 0) LONG NTSTATUS; - -typedef CONST char *PCSZ; - -//typedef struct _STRING { -// USHORT Length; -// USHORT MaximumLength; -// PCHAR Buffer; -//} STRING; -typedef STRING *PSTRING; - -typedef STRING ANSI_STRING; -typedef PSTRING PANSI_STRING; -typedef PSTRING PCANSI_STRING; - -typedef STRING OEM_STRING; -typedef PSTRING POEM_STRING; -typedef CONST STRING* PCOEM_STRING; - -//typedef struct _UNICODE_STRING { -// USHORT Length; -// USHORT MaximumLength; -// PWSTR Buffer; -//} UNICODE_STRING; -typedef UNICODE_STRING *PUNICODE_STRING; -typedef const UNICODE_STRING *PCUNICODE_STRING; - -typedef LONG KPRIORITY; - -//typedef struct _CLIENT_ID { -// HANDLE UniqueProcess; -// HANDLE UniqueThread; -//} CLIENT_ID; - -// -// The PEB_LDR_DATA, LDR_DATA_TABLE_ENTRY, RTL_USER_PROCESS_PARAMETERS, PEB -// and TEB structures are subject to changes between Windows releases; thus, -// the field offsets and reserved fields may change. The reserved fields are -// reserved for use only by the Windows operating systems. Do not assume a -// maximum size for these structures. -// -// Instead of using the InMemoryOrderModuleList field of the -// LDR_DATA_TABLE_ENTRY structure, use the Win32 API EnumProcessModules -// -// Instead of using the IsBeingDebugged field of the PEB structure, use the -// Win32 APIs IsDebuggerPresent or CheckRemoteDebuggerPresent -// -// Instead of using the SessionId field of the PEB structure, use the Win32 -// APIs GetCurrentProcessId and ProcessIdToSessionId -// -// Instead of using the Tls fields of the TEB structure, use the Win32 APIs -// TlsAlloc, TlsGetValue, TlsSetValue and TlsFree -// -// Instead of using the ReservedForOle field, use the COM API -// CoGetContextToken -// -// Sample x86 assembly code that gets the SessionId (subject to change -// between Windows releases, use the Win32 APIs to make your application -// resilient to changes) -// mov eax,fs:[00000018] -// mov eax,[eax+0x30] -// mov eax,[eax+0x1d4] -// - -// -// N.B. Fields marked as reserved do not necessarily reflect the structure -// of the real struct. They may simply guarantee that the offets of -// the exposed fields are correct. When code matches this pattern, -// -// TYPE1 ExposedField1; -// BYTE ReservedBytes[b]; -// PVOID ReservedPtrs[p]; -// TYPE2 ExposedField2; -// -// or that pattern with ReservedBytes and ReservedPtrs swapped, it is -// likely that 'b' and 'p' are derived from the following system: -// -// GapThirtyTwo = 4p + b -// GapSixtyFour = 8p + b -// -// where GapThirtyTwo is the number of bytes between the two exposed -// fields in the 32-bit version of the real struct and GapSixtyFour -// is the number of bytes between the two exposed fields in the 64-bit -// version of the real struct. -// -// Also note that such code must take into account the alignment of -// the ReservedPtrs field. -// - -typedef struct _PEB_LDR_DATA { - BYTE Reserved1[8]; - PVOID Reserved2[3]; - LIST_ENTRY InMemoryOrderModuleList; -} PEB_LDR_DATA, *PPEB_LDR_DATA; - -typedef struct _LDR_DATA_TABLE_ENTRY { - PVOID Reserved1[2]; - LIST_ENTRY InMemoryOrderLinks; - PVOID Reserved2[2]; - PVOID DllBase; - PVOID Reserved3[2]; - UNICODE_STRING FullDllName; - BYTE Reserved4[8]; - PVOID Reserved5[3]; -#pragma warning(push) -#pragma warning(disable: 4201) // we'll always use the Microsoft compiler - union { - ULONG CheckSum; - PVOID Reserved6; - } DUMMYUNIONNAME; -#pragma warning(pop) - ULONG TimeDateStamp; -} LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY; - -typedef struct _RTL_USER_PROCESS_PARAMETERS { - BYTE Reserved1[16]; - PVOID Reserved2[10]; - UNICODE_STRING ImagePathName; - UNICODE_STRING CommandLine; -} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS; - -typedef -VOID -(NTAPI *PPS_POST_PROCESS_INIT_ROUTINE) ( - VOID - ); - -typedef struct _PEB { - BYTE Reserved1[2]; - BYTE BeingDebugged; - BYTE Reserved2[1]; - PVOID Reserved3[2]; - PPEB_LDR_DATA Ldr; - PRTL_USER_PROCESS_PARAMETERS ProcessParameters; - PVOID Reserved4[3]; - PVOID AtlThunkSListPtr; - PVOID Reserved5; - ULONG Reserved6; - PVOID Reserved7; - ULONG Reserved8; - ULONG AtlThunkSListPtr32; - PVOID Reserved9[45]; - BYTE Reserved10[96]; - PPS_POST_PROCESS_INIT_ROUTINE PostProcessInitRoutine; - BYTE Reserved11[128]; - PVOID Reserved12[1]; - ULONG SessionId; -} PEB, *PPEB; - -typedef struct _TEB { - PVOID Reserved1[12]; - PPEB ProcessEnvironmentBlock; - PVOID Reserved2[399]; - BYTE Reserved3[1952]; - PVOID TlsSlots[64]; - BYTE Reserved4[8]; - PVOID Reserved5[26]; - PVOID ReservedForOle; // Windows 2000 only - PVOID Reserved6[4]; - PVOID TlsExpansionSlots; -} TEB, *PTEB; - -//typedef struct _OBJECT_ATTRIBUTES { -// ULONG Length; -// HANDLE RootDirectory; -// PUNICODE_STRING ObjectName; -// ULONG Attributes; -// PVOID SecurityDescriptor; -// PVOID SecurityQualityOfService; -//} OBJECT_ATTRIBUTES; -//typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES; - -//typedef struct _IO_STATUS_BLOCK { -//#pragma warning(push) -//#pragma warning(disable: 4201) // we'll always use the Microsoft compiler -// union { -// NTSTATUS Status; -// PVOID Pointer; -// } DUMMYUNIONNAME; -//#pragma warning(pop) -// -// ULONG_PTR Information; -//} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; - -typedef -VOID -(NTAPI *PIO_APC_ROUTINE) ( - IN PVOID ApcContext, - IN PIO_STATUS_BLOCK IoStatusBlock, - IN ULONG Reserved - ); - -//typedef struct _PROCESS_BASIC_INFORMATION { -// PVOID Reserved1; -// PPEB PebBaseAddress; -// PVOID Reserved2[2]; -// ULONG_PTR UniqueProcessId; -// PVOID Reserved3; -//} PROCESS_BASIC_INFORMATION; -//typedef PROCESS_BASIC_INFORMATION *PPROCESS_BASIC_INFORMATION; - -typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION { - LARGE_INTEGER IdleTime; - LARGE_INTEGER KernelTime; - LARGE_INTEGER UserTime; - LARGE_INTEGER Reserved1[2]; - ULONG Reserved2; -} SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION; - -typedef struct _SYSTEM_PROCESS_INFORMATION { - ULONG NextEntryOffset; - ULONG NumberOfThreads; - BYTE Reserved1[48]; - UNICODE_STRING ImageName; - KPRIORITY BasePriority; - HANDLE UniqueProcessId; - PVOID Reserved2; - ULONG HandleCount; - ULONG SessionId; - PVOID Reserved3; - SIZE_T PeakVirtualSize; - SIZE_T VirtualSize; - ULONG Reserved4; - SIZE_T PeakWorkingSetSize; - SIZE_T WorkingSetSize; - PVOID Reserved5; - SIZE_T QuotaPagedPoolUsage; - PVOID Reserved6; - SIZE_T QuotaNonPagedPoolUsage; - SIZE_T PagefileUsage; - SIZE_T PeakPagefileUsage; - SIZE_T PrivatePageCount; - LARGE_INTEGER Reserved7[6]; -} SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION; - -typedef struct _SYSTEM_THREAD_INFORMATION { - LARGE_INTEGER Reserved1[3]; - ULONG Reserved2; - PVOID StartAddress; - CLIENT_ID ClientId; - KPRIORITY Priority; - LONG BasePriority; - ULONG Reserved3; - ULONG ThreadState; - ULONG WaitReason; -} SYSTEM_THREAD_INFORMATION, *PSYSTEM_THREAD_INFORMATION; - -typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION { - ULONG RegistryQuotaAllowed; - ULONG RegistryQuotaUsed; - PVOID Reserved1; -} SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION; - -typedef struct _SYSTEM_BASIC_INFORMATION { - BYTE Reserved1[24]; - PVOID Reserved2[4]; - CCHAR NumberOfProcessors; -} SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION; - -typedef struct _SYSTEM_TIMEOFDAY_INFORMATION { - BYTE Reserved1[48]; -} SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION; - -typedef struct _SYSTEM_PERFORMANCE_INFORMATION { - BYTE Reserved1[312]; -} SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION; - -typedef struct _SYSTEM_EXCEPTION_INFORMATION { - BYTE Reserved1[16]; -} SYSTEM_EXCEPTION_INFORMATION, *PSYSTEM_EXCEPTION_INFORMATION; - -typedef struct _SYSTEM_LOOKASIDE_INFORMATION { - BYTE Reserved1[32]; -} SYSTEM_LOOKASIDE_INFORMATION, *PSYSTEM_LOOKASIDE_INFORMATION; - -typedef struct _SYSTEM_INTERRUPT_INFORMATION { - BYTE Reserved1[24]; -} SYSTEM_INTERRUPT_INFORMATION, *PSYSTEM_INTERRUPT_INFORMATION; - -typedef struct _SYSTEM_POLICY_INFORMATION { - PVOID Reserved1[2]; - ULONG Reserved2[3]; -} SYSTEM_POLICY_INFORMATION, *PSYSTEM_POLICY_INFORMATION; - -//typedef enum _FILE_INFORMATION_CLASS { -// FileDirectoryInformation = 1 -//} FILE_INFORMATION_CLASS; - -//typedef enum _PROCESSINFOCLASS { -// ProcessBasicInformation = 0, -// ProcessDebugPort = 7, -// ProcessWow64Information = 26, -// ProcessImageFileName = 27, -// ProcessBreakOnTermination = 29 -//} PROCESSINFOCLASS; - -//typedef enum _THREADINFOCLASS { -// ThreadIsIoPending = 16 -//} THREADINFOCLASS; - -// bitmask values for CodeIntegrityOptions -#define CODEINTEGRITY_OPTION_ENABLED 0x01 -#define CODEINTEGRITY_OPTION_TESTSIGN 0x02 -#define CODEINTEGRITY_OPTION_UMCI_ENABLED 0x04 -#define CODEINTEGRITY_OPTION_UMCI_AUDITMODE_ENABLED 0x08 -#define CODEINTEGRITY_OPTION_UMCI_EXCLUSIONPATHS_ENABLED 0x10 -#define CODEINTEGRITY_OPTION_TEST_BUILD 0x20 -#define CODEINTEGRITY_OPTION_PREPRODUCTION_BUILD 0x40 -#define CODEINTEGRITY_OPTION_DEBUGMODE_ENABLED 0x80 -#define CODEINTEGRITY_OPTION_FLIGHT_BUILD 0x100 -#define CODEINTEGRITY_OPTION_FLIGHTING_ENABLED 0x200 -#define CODEINTEGRITY_OPTION_HVCI_KMCI_ENABLED 0x400 -#define CODEINTEGRITY_OPTION_HVCI_KMCI_AUDITMODE_ENABLED 0x800 -#define CODEINTEGRITY_OPTION_HVCI_KMCI_STRICTMODE_ENABLED 0x1000 -#define CODEINTEGRITY_OPTION_HVCI_IUM_ENABLED 0x2000 - -typedef struct _SYSTEM_CODEINTEGRITY_INFORMATION { - ULONG Length; - ULONG CodeIntegrityOptions; -} SYSTEM_CODEINTEGRITY_INFORMATION, *PSYSTEM_CODEINTEGRITY_INFORMATION; - -typedef enum _SYSTEM_INFORMATION_CLASS { - SystemBasicInformation = 0, - SystemPerformanceInformation = 2, - SystemTimeOfDayInformation = 3, - SystemProcessInformation = 5, - SystemProcessorPerformanceInformation = 8, - SystemInterruptInformation = 23, - SystemExceptionInformation = 33, - SystemRegistryQuotaInformation = 37, - SystemLookasideInformation = 45, - SystemCodeIntegrityInformation = 103, - SystemPolicyInformation = 134, -} SYSTEM_INFORMATION_CLASS; - -// -// Object Information Classes -// - -//typedef enum _OBJECT_INFORMATION_CLASS { -// ObjectBasicInformation = 0, -// ObjectTypeInformation = 2 -//} OBJECT_INFORMATION_CLASS; - -// -// Public Object Information definitions -// - -//typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION { -// ULONG Attributes; -// ACCESS_MASK GrantedAccess; -// ULONG HandleCount; -// ULONG PointerCount; -// -// ULONG Reserved[10]; // reserved for internal use -// -//} PUBLIC_OBJECT_BASIC_INFORMATION, *PPUBLIC_OBJECT_BASIC_INFORMATION; - -//typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION { -// -// UNICODE_STRING TypeName; -// -// ULONG Reserved [22]; // reserved for internal use -// -//} PUBLIC_OBJECT_TYPE_INFORMATION, *PPUBLIC_OBJECT_TYPE_INFORMATION; - -#if (_WIN32_WINNT >= 0x0501) -// -// use the WTS API instead -// WTSGetActiveConsoleSessionId -// The active console id is cached as a volatile ULONG in a constant -// memory location. This x86 memory location is subject to changes between -// Windows releases. Use the WTS API to make your application resilient to -// changes. -// -#define INTERNAL_TS_ACTIVE_CONSOLE_ID ( *((volatile ULONG*)(0x7ffe02d8)) ) -#endif // (_WIN32_WINNT >= 0x0501) - -// -// These functions are intended for use by internal core Windows components -// since these functions may change between Windows releases. -// - -#define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length)) -#define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length)) -#define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) - -// -// use the Win32 API instead -// CloseHandle -// -__kernel_entry NTSTATUS -NTAPI -NtClose ( - IN HANDLE Handle - ); - -// -// use the Win32 API instead -// CreateFile -// -__kernel_entry NTSTATUS -NTAPI -NtCreateFile ( - OUT PHANDLE FileHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes, - OUT PIO_STATUS_BLOCK IoStatusBlock, - IN PLARGE_INTEGER AllocationSize OPTIONAL, - IN ULONG FileAttributes, - IN ULONG ShareAccess, - IN ULONG CreateDisposition, - IN ULONG CreateOptions, - IN PVOID EaBuffer OPTIONAL, - IN ULONG EaLength - ); - -// -// use the Win32 API instead -// CreateFile -// -__kernel_entry NTSTATUS -NTAPI -NtOpenFile ( - OUT PHANDLE FileHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes, - OUT PIO_STATUS_BLOCK IoStatusBlock, - IN ULONG ShareAccess, - IN ULONG OpenOptions - ); - -// -// use the Win32 API instead -// N/A -// -__kernel_entry NTSTATUS -NTAPI -NtRenameKey ( - _In_ HANDLE KeyHandle, - _In_ PUNICODE_STRING NewName - ); - -// -// use the Win32 API instead -// RegNotifyChangeKeyValue -// - -__kernel_entry NTSTATUS -NTAPI -NtNotifyChangeMultipleKeys ( - _In_ HANDLE MasterKeyHandle, - _In_opt_ ULONG Count, - _In_reads_opt_(Count) OBJECT_ATTRIBUTES SubordinateObjects[], - _In_opt_ HANDLE Event, - _In_opt_ PIO_APC_ROUTINE ApcRoutine, - _In_opt_ PVOID ApcContext, - _Out_ PIO_STATUS_BLOCK IoStatusBlock, - _In_ ULONG CompletionFilter, - _In_ BOOLEAN WatchTree, - _Out_writes_bytes_opt_(BufferSize) PVOID Buffer, - _In_ ULONG BufferSize, - _In_ BOOLEAN Asynchronous - ); - -// -// use the Win32 API instead -// RegQueryValueEx -// - -//typedef struct _KEY_VALUE_ENTRY { -// PUNICODE_STRING ValueName; -// ULONG DataLength; -// ULONG DataOffset; -// ULONG Type; -//} KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY; - -__kernel_entry NTSTATUS -NTAPI -NtQueryMultipleValueKey ( - _In_ HANDLE KeyHandle, - _Inout_updates_(EntryCount) PKEY_VALUE_ENTRY ValueEntries, - _In_ ULONG EntryCount, - _Out_writes_bytes_(*BufferLength) PVOID ValueBuffer, - _Inout_ PULONG BufferLength, - _Out_opt_ PULONG RequiredBufferLength - ); - -// -// use the Win32 API instead -// N/A -// - -//typedef enum _KEY_SET_INFORMATION_CLASS { -// KeyWriteTimeInformation, -// KeyWow64FlagsInformation, -// KeyControlFlagsInformation, -// KeySetVirtualizationInformation, -// KeySetDebugInformation, -// KeySetHandleTagsInformation, -// MaxKeySetInfoClass // MaxKeySetInfoClass should always be the last enum -//} KEY_SET_INFORMATION_CLASS; - -__kernel_entry NTSTATUS -NTAPI -NtSetInformationKey ( - _In_ HANDLE KeyHandle, - _In_ _Strict_type_match_ - KEY_SET_INFORMATION_CLASS KeySetInformationClass, - _In_reads_bytes_(KeySetInformationLength) PVOID KeySetInformation, - _In_ ULONG KeySetInformationLength - ); - -// -// use the Win32 API instead -// DeviceIoControl -// -__kernel_entry NTSTATUS -NTAPI -NtDeviceIoControlFile ( - IN HANDLE FileHandle, - IN HANDLE Event OPTIONAL, - IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, - IN PVOID ApcContext OPTIONAL, - OUT PIO_STATUS_BLOCK IoStatusBlock, - IN ULONG IoControlCode, - IN PVOID InputBuffer OPTIONAL, - IN ULONG InputBufferLength, - OUT PVOID OutputBuffer OPTIONAL, - IN ULONG OutputBufferLength - ); - -// -// use the Win32 API instead -// WaitForSingleObjectEx -// -NTSTATUS -NTAPI -NtWaitForSingleObject ( - IN HANDLE Handle, - IN BOOLEAN Alertable, - IN PLARGE_INTEGER Timeout OPTIONAL - ); - -// -// use the Win32 API instead -// CheckNameLegalDOS8Dot3 -// -//BOOLEAN -//NTAPI -//RtlIsNameLegalDOS8Dot3 ( -// IN PUNICODE_STRING Name, -// IN OUT POEM_STRING OemName OPTIONAL, -// IN OUT PBOOLEAN NameContainsSpaces OPTIONAL -// ); - -// -// This function might be needed for some of the internal Windows functions, -// defined in this header file. -// -//_When_(Status < 0, _Out_range_(>, 0)) -//_When_(Status >= 0, _Out_range_(==, 0)) -//ULONG -//NTAPI -//RtlNtStatusToDosError ( -// NTSTATUS Status -// ); - -// -// use the Win32 APIs instead -// GetProcessHandleCount -// GetProcessId -// -__kernel_entry NTSTATUS -NTAPI -NtQueryInformationProcess ( - IN HANDLE ProcessHandle, - IN PROCESSINFOCLASS ProcessInformationClass, - OUT PVOID ProcessInformation, - IN ULONG ProcessInformationLength, - OUT PULONG ReturnLength OPTIONAL - ); - -// -// use the Win32 API instead -// GetThreadIOPendingFlag -// -__kernel_entry NTSTATUS -NTAPI -NtQueryInformationThread ( - IN HANDLE ThreadHandle, - IN THREADINFOCLASS ThreadInformationClass, - OUT PVOID ThreadInformation, - IN ULONG ThreadInformationLength, - OUT PULONG ReturnLength OPTIONAL - ); - -// -// use the Win32 APIs instead -// GetFileInformationByHandle -// GetFileInformationByHandleEx -// GetProcessInformation -// GetThreadInformation -// - -__kernel_entry -NTSTATUS -NTAPI -NtQueryObject ( - _In_opt_ HANDLE Handle, - _In_ OBJECT_INFORMATION_CLASS ObjectInformationClass, - _Out_writes_bytes_opt_(ObjectInformationLength) PVOID ObjectInformation, - _In_ ULONG ObjectInformationLength, - _Out_opt_ PULONG ReturnLength - ); - -// -// use the Win32 APIs instead -// GetSystemRegistryQuota -// GetSystemTimes -// use the CryptoAPIs instead for generating random data -// CryptGenRandom -// -__kernel_entry NTSTATUS -NTAPI -NtQuerySystemInformation ( - IN SYSTEM_INFORMATION_CLASS SystemInformationClass, - OUT PVOID SystemInformation, - IN ULONG SystemInformationLength, - OUT PULONG ReturnLength OPTIONAL - ); - -// -// use the Win32 API instead -// GetSystemTimeAsFileTime -// -__kernel_entry NTSTATUS -NTAPI -NtQuerySystemTime ( - OUT PLARGE_INTEGER SystemTime - ); - -// -// use the Win32 API instead -// LocalFileTimeToFileTime -// -NTSTATUS -NTAPI -RtlLocalTimeToSystemTime ( - IN PLARGE_INTEGER LocalTime, - OUT PLARGE_INTEGER SystemTime - ); - -// -// use the Win32 API instead -// SystemTimeToFileTime to convert to FILETIME structures -// copy the resulting FILETIME structures to ULARGE_INTEGER structures -// perform the calculation -// -//BOOLEAN -//NTAPI -//RtlTimeToSecondsSince1970 ( -// PLARGE_INTEGER Time, -// PULONG ElapsedSeconds -// ); - -// -// These APIs might be need for some of the internal Windows functions, -// defined in this header file. -// -//VOID -//NTAPI -//RtlFreeAnsiString ( -// PANSI_STRING AnsiString -// ); - -//VOID -//NTAPI -//RtlFreeUnicodeString ( -// PUNICODE_STRING UnicodeString -// ); - -//VOID -//NTAPI -//RtlFreeOemString( -// POEM_STRING OemString -// ); - -//VOID -//NTAPI -//RtlInitString ( -// PSTRING DestinationString, -// PCSZ SourceString -// ); -// -//NTSTATUS -//NTAPI -//RtlInitStringEx ( -// PSTRING DestinationString, -// PCSZ SourceString -// ); -// -//VOID -//NTAPI -//RtlInitAnsiString ( -// PANSI_STRING DestinationString, -// PCSZ SourceString -// ); -// -//NTSTATUS -//NTAPI -//RtlInitAnsiStringEx ( -// PANSI_STRING DestinationString, -// PCSZ SourceString -// ); -// -//VOID -//NTAPI -//RtlInitUnicodeString ( -// PUNICODE_STRING DestinationString, -// PCWSTR SourceString -// ); -// -//NTSTATUS -//NTAPI -//RtlAnsiStringToUnicodeString ( -// PUNICODE_STRING DestinationString, -// PCANSI_STRING SourceString, -// BOOLEAN AllocateDestinationString -// ); -// -//NTSTATUS -//NTAPI -//RtlUnicodeStringToAnsiString ( -// PANSI_STRING DestinationString, -// PCUNICODE_STRING SourceString, -// BOOLEAN AllocateDestinationString -// ); -// -//NTSTATUS -//NTAPI -//RtlUnicodeStringToOemString( -// POEM_STRING DestinationString, -// PCUNICODE_STRING SourceString, -// BOOLEAN AllocateDestinationString -// ); - -// -// Use the Win32 API instead -// WideCharToMultiByte -// set CodePage to CP_ACP -// set cbMultiByte to 0 -// -//NTSTATUS -//NTAPI -//RtlUnicodeToMultiByteSize( -// _Out_ PULONG BytesInMultiByteString, -// _In_reads_bytes_(BytesInUnicodeString) PWCH UnicodeString, -// _In_ ULONG BytesInUnicodeString -// ); - -// -// Use the C runtime function instead -// strtol -// -//NTSTATUS -//NTAPI -//RtlCharToInteger ( -// PCSZ String, -// ULONG Base, -// PULONG Value -// ); - -// -// use the Win32 API instead -// ConvertSidToStringSid -// -//NTSTATUS -//NTAPI -//RtlConvertSidToUnicodeString ( -// PUNICODE_STRING UnicodeString, -// PSID Sid, -// BOOLEAN AllocateDestinationString -// ); - -// -// use the CryptoAPIs instead -// CryptGenRandom -// -ULONG -NTAPI -RtlUniform ( - PULONG Seed - ); - - -#define LOGONID_CURRENT ((ULONG)-1) -#define SERVERNAME_CURRENT ((HANDLE)NULL) - -typedef enum _WINSTATIONINFOCLASS { - WinStationInformation = 8 -} WINSTATIONINFOCLASS; - - -typedef struct _WINSTATIONINFORMATIONW { - BYTE Reserved2[70]; - ULONG LogonId; - BYTE Reserved3[1140]; -} WINSTATIONINFORMATIONW, * PWINSTATIONINFORMATIONW; - -// -// this function is implemented in winsta.dll (you need to loadlibrary to call this function) -// this internal function retrives the LogonId (also called SessionId) for the current process -// You should avoid using this function as it can change. you can retrieve the same information -// Using public api WTSQuerySessionInformation. Pass WTSSessionId as the WTSInfoClass parameter -// -typedef BOOLEAN (WINAPI * PWINSTATIONQUERYINFORMATIONW)( - HANDLE, ULONG, WINSTATIONINFOCLASS, PVOID, ULONG, PULONG ); - -// -// Generic test for success on any status value (non-negative numbers -// indicate success). -// - -#ifndef NT_SUCCESS -#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0) -#endif - -// -// Generic test for information on any status value. -// - -#ifndef NT_INFORMATION -#define NT_INFORMATION(Status) ((((ULONG)(Status)) >> 30) == 1) -#endif - -// -// Generic test for warning on any status value. -// - -#ifndef NT_WARNING -#define NT_WARNING(Status) ((((ULONG)(Status)) >> 30) == 2) -#endif - -// -// Generic test for error on any status value. -// - -#ifndef NT_ERROR -#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3) -#endif - -//++ -// -// VOID -// InitializeObjectAttributes( -// OUT POBJECT_ATTRIBUTES p, -// IN PUNICODE_STRING n, -// IN ULONG a, -// IN HANDLE r, -// IN PSECURITY_DESCRIPTOR s -// ) -// -//-- - -#ifndef InitializeObjectAttributes -#define InitializeObjectAttributes( p, n, a, r, s ) { \ - (p)->Length = sizeof( OBJECT_ATTRIBUTES ); \ - (p)->RootDirectory = r; \ - (p)->Attributes = a; \ - (p)->ObjectName = n; \ - (p)->SecurityDescriptor = s; \ - (p)->SecurityQualityOfService = NULL; \ - } -#endif - -// -// Valid values for the Attributes field -// - -#define OBJ_INHERIT 0x00000002L -#define OBJ_PERMANENT 0x00000010L -#define OBJ_EXCLUSIVE 0x00000020L -#define OBJ_CASE_INSENSITIVE 0x00000040L -#define OBJ_OPENIF 0x00000080L -#define OBJ_OPENLINK 0x00000100L -#define OBJ_KERNEL_HANDLE 0x00000200L -#define OBJ_FORCE_ACCESS_CHECK 0x00000400L -#define OBJ_IGNORE_IMPERSONATED_DEVICEMAP 0x00000800L -#define OBJ_DONT_REPARSE 0x00001000L -#define OBJ_VALID_ATTRIBUTES 0x00001FF2L - -// -// Define the create disposition values -// - -#define FILE_SUPERSEDE 0x00000000 -#define FILE_OPEN 0x00000001 -#define FILE_CREATE 0x00000002 -#define FILE_OPEN_IF 0x00000003 -#define FILE_OVERWRITE 0x00000004 -#define FILE_OVERWRITE_IF 0x00000005 -#define FILE_MAXIMUM_DISPOSITION 0x00000005 - -// -// Define the create/open option flags -// - -#define FILE_DIRECTORY_FILE 0x00000001 -#define FILE_WRITE_THROUGH 0x00000002 -#define FILE_SEQUENTIAL_ONLY 0x00000004 -#define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008 - -#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010 -#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020 -#define FILE_NON_DIRECTORY_FILE 0x00000040 -#define FILE_CREATE_TREE_CONNECTION 0x00000080 - -#define FILE_COMPLETE_IF_OPLOCKED 0x00000100 -#define FILE_NO_EA_KNOWLEDGE 0x00000200 -#define FILE_OPEN_REMOTE_INSTANCE 0x00000400 -#define FILE_RANDOM_ACCESS 0x00000800 - -#define FILE_DELETE_ON_CLOSE 0x00001000 -#define FILE_OPEN_BY_FILE_ID 0x00002000 -#define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000 -#define FILE_NO_COMPRESSION 0x00008000 - -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7) -#define FILE_OPEN_REQUIRING_OPLOCK 0x00010000 -#endif - -#define FILE_RESERVE_OPFILTER 0x00100000 -#define FILE_OPEN_REPARSE_POINT 0x00200000 -#define FILE_OPEN_NO_RECALL 0x00400000 -#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 - -#define FILE_VALID_OPTION_FLAGS 0x00ffffff -#define FILE_VALID_PIPE_OPTION_FLAGS 0x00000032 -#define FILE_VALID_MAILSLOT_OPTION_FLAGS 0x00000032 -#define FILE_VALID_SET_FLAGS 0x00000036 - -// -// Define the I/O status information return values for NtCreateFile/NtOpenFile -// - -#define FILE_SUPERSEDED 0x00000000 -#define FILE_OPENED 0x00000001 -#define FILE_CREATED 0x00000002 -#define FILE_OVERWRITTEN 0x00000003 -#define FILE_EXISTS 0x00000004 -#define FILE_DOES_NOT_EXIST 0x00000005 - -#ifdef __cplusplus -} -#endif - -#endif // (_WIN32_WINNT >= 0x0500) - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#endif // _WINTERNL_ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 77b7006..f800285 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -4,13 +4,16 @@ project(crtsys_test LANGUAGES C CXX) include(../cmake/CPM.cmake) -set(CRTSYS_USE_LIBCNTPR ON) set(CRTSYS_NTL_MAIN ON) CPMAddPackage(NAME crtsys SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/..) -# CPMAddPackage("gh:ntoskrnl7/crtsys@0.1.0") +# CPMAddPackage("gh:ntoskrnl7/crtsys@0.1.4") include(${crtsys_SOURCE_DIR}/cmake/CrtSys.cmake) -CPMAddPackage("gh:nlohmann/json@3.10.5") +set(CRTSYS_TEST_NLOHMANN_JSON ON) + +if (CRTSYS_TEST_NLOHMANN_JSON) + CPMAddPackage("gh:nlohmann/json@3.10.5") +endif() CPMAddPackage( NAME googletest @@ -28,17 +31,26 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /WX") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4 /WX") file(GLOB SOURCE_FILES - ./src/*.cpp - ./src/*/*.cpp - ./src/*/*/*.cpp - ./src/*.c - ./src/*/*.c - ./src/*/*/*.c + src/*.cpp + src/*/*.cpp + src/*/*/*.cpp + src/*.c + src/*/*.c + src/*/*/*.c ) +if (NOT CRTSYS_TEST_NLOHMANN_JSON) + list(REMOVE_ITEM SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/libs/nlohmann_json.cpp) +endif() + crtsys_add_driver(crtsys_test ${SOURCE_FILES}) -target_link_libraries(crtsys_test gtest nlohmann_json::nlohmann_json) +if (CRTSYS_TEST_NLOHMANN_JSON) + target_compile_definitions(crtsys_test PRIVATE "CRTSYS_TEST_NLOHMANN_JSON") + target_link_libraries(crtsys_test nlohmann_json::nlohmann_json) +endif() + +target_link_libraries(crtsys_test gtest) include(../cmake/std-cxx.cmake) set_std_cxx_latest(crtsys_test) \ No newline at end of file From 86b4a02ac33270f6cd8fefe2c7b3e3b7789d8ffb Mon Sep 17 00:00:00 2001 From: Jung-Kwang Lee Date: Sun, 29 May 2022 02:51:07 +0900 Subject: [PATCH 2/2] Update README.md --- README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index cab9152..11ac637 100644 --- a/README.md +++ b/README.md @@ -255,10 +255,13 @@ CMake를 사용하는것을 권장합니다. 3. 프로젝트 디렉토리에 아래와 같은 파일을 작성해주시기 바랍니다. - 디렉토리 구조 - 📦test-project - ┣ 📂src - ┃ ┗ 📜main.cpp - ┗ 📜CMakeLists.txt + + ```tree + 📦test-project + ┣ 📂src + ┃ ┗ 📜main.cpp + ┗ 📜CMakeLists.txt + ``` - CMakeLists.txt @@ -311,14 +314,14 @@ CMake를 사용하는것을 권장합니다. } ``` -4. 빌드를 수행합니다. +1. 빌드를 수행합니다. ```batch cmake -S . -B build cmake --build build ``` -5. 드라이버가 정상적으로 시작되고 종료되는지 확인하시기 바랍니다. +2. 드라이버가 정상적으로 시작되고 종료되는지 확인하시기 바랍니다. ```batch sc create CrtSysTest binpath= "빌드된 crtsys_test.sys의 전체 경로" displayname= "crtsys test" start= demand type= kernel